ImageMagick
Bibliothèque Open Source C pour créer et convertir des images
Créez, modifiez, composez, lisez et convertissez des images Bitmap à l'aide de l'API C gratuite. Il permet de redimensionner, retourner, mettre en miroir, faire pivoter, déformer, cisailler et transformer des images dans les applications C.
ImageMagick est une bibliothèque open source qui donne aux développeurs de logiciels le pouvoir d'inclure des capacités de traitement d'image dans leurs propres applications C. La bibliothèque est multiplateforme et peut fonctionner sans problème sur Linux, Windows, Mac Os X, iOS, Android OS et bien d'autres. Il a inclus la prise en charge de la lecture, de l'affichage, de la création, de la conversion, de la modification et de la modification d'images raster à l'aide de code C.
Une grande caractéristique d'ImageMagick est sa capacité à convertir avec précision et de manière professionnelle des images entre différents formats de fichiers de premier plan. La bibliothèque prend en charge plus de 200 formats de fichiers image tels que JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG et bien d'autres. La bibliothèque a également fourni un support pour le dessin ainsi que les graphiques et les graphiques animés avec facilité.
La bibliothèque est très riche en fonctionnalités et inclut la prise en charge de certaines fonctionnalités courantes de traitement d'image telles que le redimensionnement et le retournement d'image, la mise en miroir et la rotation d'image, la distorsion, la transformation d'images, le réglage des couleurs d'image, l'application de divers effets spéciaux de flou ou d'accentuation ou de seuil, les dégradés d'image , la détection des bords astucieuse dessine du texte, des lignes, des polygones, des ellipses, en utilisant une expression mathématique et bien d'autres. Récemment, la bibliothèque a également inclus la prise en charge de l'extraction de texte à partir d'images à l'aide de l'OCR.
Premiers pas avec ImageMagick
Clonez les dernières sources à l'aide de la commande suivante
Installez ImageMagick via GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
Ou utilisez la commande suivante pour l'installer.
Installez ImageMagick via RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Convertir l'image en d'autres formats
La bibliothèque C open source ImageMagick permet aux programmeurs de logiciels de convertir des images vers d'autres formats de fichiers pris en charge dans leurs propres applications. Les utilisateurs doivent fournir le paramètre de format avant de convertir dans un autre format. La bibliothèque convertit en interne l'image dans d'autres formats plus tôt, avant d'appliquer les transformations. La bibliothèque prend en charge la conversion vers plusieurs formats d'image populaires tels que les formats BMP, CMJN, GIF, JPEG, PBM, PNG, RVB, SVG, TIFF et XPM. Un grand aspect de la bibliothèque est la facilité d'utilisation lors de la conversion de l'image. Il offre également la possibilité de réduire la taille de l'image et d'appliquer différents effets avant de l'écrire dans le format souhaité.
Convertir GIF à l'image JPEG via ImageMagick
#include
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
InitializeMagick(*argv);
// Read GIF file from disk
Image image( "giraffe.gif" );
// Write to BLOB in JPEG format
Blob blob;
image.magick( "JPEG" ) // Set JPEG output format
image.write( &blob );
[ Use BLOB data (in JPEG format) here ]
return 0;
}
Prise en charge des dégradés d'image à l'aide de l'API C
La bibliothèque C open source ImageMagick permet aux développeurs de logiciels de créer des dégradés d'images de plusieurs couleurs à l'aide de commandes C. Vous pouvez facilement créer un mélange progressif d'une ou plusieurs couleurs en utilisant des formes horizontales, verticales, circulaires ou elliptiques. La bibliothèque a amélioré les dégradés grâce à l'utilisation de plusieurs définitions telles que la spécification de la direction du dégradé linéaire, l'identification des coordonnées du point central du dégradé radial, la restriction du dégradé à une région plus grande ou plus petite que les dimensions de l'image, etc. sur. De plus, pour les dégradés de niveaux de gris non linéaires, veuillez ajouter -colorspace RGB -colorspace gray avant d'enregistrer la sortie.
Créer un gradient de Grayscale simple via C API
void test_wand(LPTSTR lpCmdLine)
{
MagickWand *m_wand = NULL;
PixelWand *p_wand = NULL;
PixelIterator *iterator = NULL;
PixelWand **pixels = NULL;
int x,y,gray;
char hex[128];
MagickWandGenesis();
p_wand = NewPixelWand();
PixelSetColor(p_wand,"white");
m_wand = NewMagickWand();
// Create a 100x100 image with a default of white
MagickNewImage(m_wand,100,100,p_wand);
// Get a new pixel iterator
iterator=NewPixelIterator(m_wand);
for(y=0;y<100;y++) {
// Get the next row of the image as an array of PixelWands
pixels=PixelGetNextIteratorRow(iterator,&x);
// Set the row of wands to a simple gray scale gradient
for(x=0;x<100;x++) {
gray = x*255/100;
sprintf(hex,"#%02x%02x%02x",gray,gray,gray);
PixelSetColor(pixels[x],hex);
}
// Sync writes the pixels back to the m_wand
PixelSyncIterator(iterator);
}
MagickWriteImage(m_wand,"bits_demo.gif");
// Clean up
iterator=DestroyPixelIterator(iterator);
DestroyMagickWand(m_wand);
MagickWandTerminus();
}
Appliquer des effets spéciaux aux images via C
La bibliothèque C open source ImageMagick a fourni des fonctionnalités pour appliquer différents types d'effets aux images. Il a fourni plusieurs fonctions importantes telles que le flou, la netteté, le seuil, la création d'ombres, l'adoucissement des formes ou la teinte d'une image à l'aide de quelques lignes de code C. Certains effets de flou spéciaux tels que le flou radio et le flou de mouvement sont également pris en charge.
Appliquer l'effet Font déposé par C API
magick_wand = NewMagickWand();
d_wand = NewDrawingWand();
p_wand = NewPixelWand();
set_tile_pattern(d_wand,"#check","pattern:checkerboard");
PixelSetColor(p_wand,"lightblue");
// Create a new transparent image
MagickNewImage(magick_wand,320,100,p_wand);
// Set up a 72 point font
DrawSetFont (d_wand, "Verdana-Bold-Italic" ) ;
DrawSetFontSize(d_wand,72);
// Now draw the text
DrawAnnotation(d_wand,28,68,"Magick");
// Draw the image on to the magick_wand
MagickDrawImage(magick_wand,d_wand);
// Trim the image
MagickTrimImage(magick_wand,0);
// Add a transparent border
PixelSetColor(p_wand,"lightblue");
MagickBorderImage(magick_wand,p_wand,5,5);
// and write it
MagickWriteImage(magick_wand,"text_pattern.png");
Prise en charge des grandes images
La bibliothèque C ImageMagick a fourni un support pour travailler avec de très grandes images. Il permet aux développeurs d'ouvrir, de lire, de traiter ou d'écrire des images jusqu'à des tailles de méga, giga ou téra pixels dans leurs propres applications de traitement d'images. La bibliothèque permet de redimensionner une image à un quart de million de pixels carrés. Lorsque vous travaillez avec de grandes images, vous devez vous assurer de la disponibilité de ressources mémoire importantes. Si la partition de disque temporaire par défaut est petite, guidez ImageMagick pour qu'il utilise une autre partition avec une quantité suffisante d'espace libre.