ImageMagick
Biblioteca Open Source C para crear y convertir imágenes
Cree, edite, componga, lea y convierta imágenes de mapa de bits con la API de C gratuita. Permite cambiar el tamaño, voltear, reflejar, rotar, distorsionar, cortar y transformar imágenes dentro de aplicaciones C.
ImageMagick es una biblioteca de código abierto que brinda a los desarrolladores de software el poder de incluir capacidades de procesamiento de imágenes dentro de sus propias aplicaciones C. La biblioteca es multiplataforma y puede ejecutarse sin problemas en Linux, Windows, Mac Os X, iOS, Android OS y muchos otros. Ha incluido soporte para leer, mostrar, crear, convertir, modificar y modificar imágenes raster usando código C.
Una gran característica de ImageMagick es su capacidad para convertir imágenes de forma precisa y profesional entre diferentes formatos de archivo líderes. La biblioteca ha incluido soporte para más de 200 formatos de archivo de imagen como JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG y muchos más. La biblioteca también ha brindado soporte para dibujar, así como gráficos y gráficos animados con facilidad.
La biblioteca es muy rica en funciones y ha incluido soporte para algunas funciones comunes de procesamiento de imágenes, como cambio de tamaño y volteo de imágenes, duplicación y rotación de imágenes, distorsión, transformación de imágenes, ajuste de colores de imágenes, aplicación de varios efectos especiales, desenfoque o nitidez o umbral, gradientes de imagen , astuta detección de bordes dibuja texto, líneas, polígonos, elipses, usando expresiones matemáticas y muchos más. Recientemente, la biblioteca también ha incluido soporte para extraer texto de imágenes usando OCR.
Primeros pasos con ImageMagick
Clona las fuentes más recientes usando el siguiente comando
Instale ImageMagick a través de GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
O use el siguiente comando para instalarlo.
Instale ImageMagick a través de RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Convertir imagen a otros formatos
La biblioteca C de código abierto ImageMagick permite a los programadores de software convertir imágenes a otros formatos de archivo compatibles dentro de sus propias aplicaciones. Los usuarios deben proporcionar el parámetro de formato antes de convertir a otro formato. La biblioteca convierte internamente la imagen a otros formatos antes, antes de aplicar las transformaciones. La biblioteca admite la conversión a varios formatos de imagen populares, como los formatos BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF y XPM. Un gran aspecto de la biblioteca es la facilidad de uso al convertir la imagen. También brinda la posibilidad de reducir el tamaño de la imagen y aplicar diferentes efectos antes de escribirla en el formato deseado.
Convertir GIF a JPEG Imagen vía 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;
}
Compatibilidad con degradados de imagen utilizando C API
La biblioteca C de código abierto ImageMagick permite a los desarrolladores de software crear degradados de imagen de varios colores mediante comandos C. Puede crear fácilmente una combinación gradual de uno o varios colores utilizando formas horizontales, verticales, circulares o elípticas. La biblioteca ha mejorado los degradados mediante el uso de varias definiciones, como especificar la dirección del degradado lineal, identificar las coordenadas del punto central para el degradado radial, restringir el degradado a una región más grande o más pequeña que las dimensiones de la imagen, etc. en. Además, para degradados en escala de grises no lineales, agregue -colorspace RGB -colorspace gray antes de guardar la salida.
Crear un simple Grayscale Gradient a través de 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();
}
Aplicar efectos especiales a las imágenes a través de C
La biblioteca C de código abierto ImageMagick ha proporcionado funcionalidad para aplicar diferentes tipos de efectos a las imágenes. Ha proporcionado varias funciones importantes, como desenfoque, nitidez, umbral, creación de sombras, difuminado de formas o teñido de una imagen usando un par de líneas de código C. También se admiten algunos efectos de desenfoque especiales como el desenfoque de radio y el desenfoque de movimiento.
Aplicar Efecto de Font filtrado a través de 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");
Soporte de imágenes grandes
La biblioteca C ImageMagick ha proporcionado soporte para trabajar con imágenes muy grandes. Permite a los desarrolladores abrir, leer, procesar o escribir imágenes de tamaño Mega, Giga o Terapíxel dentro de sus propias aplicaciones de procesamiento de imágenes. La biblioteca permite cambiar el tamaño de una imagen a un cuarto de millón de píxeles cuadrados. Mientras trabaja con imágenes grandes, debe asegurarse de la disponibilidad de grandes recursos de memoria. Si la partición de disco temporal predeterminada es pequeña, guíe a ImageMagick para que use otra partición con una cantidad suficiente de espacio libre.