1. Productos
  2.   Imagen
  3.   ImageMagick

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.

Previous Next

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.

 Español