🔊 A API Magick++ é a API C++ orientada a objetos para a biblioteca de processamento de imagem ImageMagick.
Magick++ suporta um modelo de objeto inspirado em PerlMagick . As imagens oferecem suporte à contagem de referência implícita para que os construtores de cópia e a atribuição incorram em quase nenhum custo.
O custo de copiar uma imagem (se necessário) é feito logo antes da modificação e esta cópia é gerenciada automagicamente pelo Magick++. As cópias desreferenciadas são excluídas automaticamente. Os objetos de imagem oferecem suporte à semântica de valor (em vez de ponteiro), portanto, é trivial oferecer suporte a várias gerações de uma imagem na memória ao mesmo tempo.
Instalação no Ubuntu:
sudo apt install imagemagick libmagick++-dev graphicsmagick-libmagick-dev-compat
Para Instalar no Windows ou outras distros e sistemas operacionais, veja os links abaixo:
#include <Magick++.h>
int main(){
Magick::InitializeMagick("");
Magick::Image image(Magick::Geometry(800, 600), Magick::Color("white"));
Magick::DrawableCircle circle(400, 300, 500, 300);
image.fillColor("green");
image.draw(circle);
image.write("circulo_verde.png");
return 0;
}
Para compilar e rodar:
g++ `Magick++-config --cxxflags --cppflags` -O2 -o 01 main.cpp `Magick++-config --ldflags --libs`)
./01
Imagem utilizada nesse exemplo 02: langs.png
#include <Magick++.h>
int main(){
Magick::InitializeMagick("");
Magick::Image image;
image.read("./langs.png");
image.crop(Magick::Geometry(219, 147, 409, 272));
image.write("php.jpg");
return 0;
}
Imagem utilizada nesse exemplo 03: The-man-image.webp
#include <Magick++.h>
int main(){
Magick::InitializeMagick("");
Magick::Image image;
image.read("./The-man-image.webp");
image.write("Bjarne Stroustrup.jpg");
return 0;
}
Fonte utilizada: font.ttf
#include <Magick++.h>
int main(){
Magick::InitializeMagick("");
Magick::Image image;
image.read("./Bjarne Stroustrup.jpg");
image.font("./font.ttf");
image.fillColor(Magick::Color("yellow"));
image.strokeColor(Magick::Color("black"));
image.fontPointsize(30);
image.draw(Magick::DrawableText(50, 300, "Bjarne Stroustrup"));
image.write("image_com_texto.png");
return 0;
}