1. Produtos
  2.   Imagem
  3.   ImageMagick

ImageMagick

 
 

Biblioteca C de código aberto para criar e converter imagens

Crie, edite, componha, leia e converta imagens de bitmap usando a API C  gratuita. Ele permite redimensionar, inverter, espelhar, girar, distorcer, cisalhar e transformar imagens dentro de aplicativos C.

O ImageMagick é uma biblioteca de código aberto que dá aos desenvolvedores de software o poder de incluir recursos de processamento de imagem dentro de seus próprios aplicativos C. A biblioteca é multiplataforma e pode ser executada sem problemas em Linux, Windows, Mac Os X, iOS, Android OS e muitos outros. Ele incluiu suporte para leitura, exibição, criação, conversão, modificação e modificação de imagens raster usando código C.

Um ótimo recurso do ImageMagick é sua capacidade de converter imagens com precisão e profissionalismo entre os diferentes formatos de arquivo líderes. A biblioteca inclui suporte para mais de 200 formatos de arquivo de imagem, como JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG e muitos mais. A biblioteca também forneceu suporte para desenho, bem como gráficos e gráficos animados com facilidade.

A biblioteca é muito rica em recursos e inclui suporte para alguns recursos comuns de processamento de imagem, como redimensionamento e inversão de imagem, espelhamento e rotação de imagem, distorção, transformação de imagens, ajuste de cores de imagem, aplicação de vários efeitos especiais de desfoque ou nitidez ou limite, gradientes de imagem , detecção de borda inteligente desenha texto, linhas, polígonos, elipses, usando expressão matemática e muito mais. Recentemente, a biblioteca também incluiu suporte para extrair texto de imagens usando OCR.

Previous Next

Introdução ao ImageMagick

Clone as fontes mais recentes usando o seguinte comando

Instale o ImageMagick via GitHub.

 git clone https://github.com/ImageMagick/ImageMagick.git 

Ou use o seguinte comando para instalá-lo.

Instale o ImageMagick via RPM.

$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm 

Converter imagem para outros formatos

A biblioteca C de código aberto ImageMagick permite que programadores de software convertam imagens para outros formatos de arquivo suportados dentro de seus próprios aplicativos. Os usuários precisam fornecer o parâmetro de formato antes de converter para outro formato. A biblioteca converte internamente a imagem para outros formatos anteriormente, antes de aplicar as transformações. A biblioteca suporta a conversão para vários formatos de imagem populares, como os formatos BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF e XPM. Um grande aspecto da biblioteca é a facilidade de uso ao converter a imagem. Ele também oferece a capacidade de reduzir o tamanho da imagem e aplicar efeitos diferentes antes de escrevê-la no formato desejado.

Converter GIF para JPEG Imagem 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; 
}

Suporte a gradientes de imagem usando a API C

A biblioteca C de código aberto ImageMagick permite que os desenvolvedores de software criem gradientes de imagem de várias cores usando comandos C. Você pode criar facilmente uma mistura gradual de uma ou várias cores usando formas horizontais, verticais, circulares ou elípticas. A biblioteca aprimorou os gradientes através do uso de vários –define como especificar a direção do gradiente linear, identificar as coordenadas do ponto central para o gradiente radial, restringir o gradiente a uma região maior ou menor que as dimensões da imagem e assim sobre. Além disso, para gradientes de escala de cinza não lineares, adicione -colorspace RGB -colorspace gray antes de salvar a saída.

Criar um gradiente de escala simples atravé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 efeitos especiais a imagens via C

A biblioteca C de código aberto ImageMagick forneceu funcionalidade para aplicar diferentes tipos de efeitos a imagens. Ele forneceu várias funções importantes, como desfoque, nitidez, limiar, criação de sombras, enevoamento de formas ou tingimento de uma imagem usando algumas linhas de código C. Há alguns efeitos especiais de desfoque, como desfoque de rádio e desfoque de movimento, também são suportados.

Aplicar Efeito de Font Filed via 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");

Suporte para imagens grandes

A biblioteca C ImageMagick forneceu suporte para trabalhar com imagens muito grandes. Ele permite que os desenvolvedores abram, leiam, processem ou gravem imagens com tamanhos de até Mega, Giga ou Tera-pixel dentro de seus próprios aplicativos de processamento de imagem. A biblioteca permite redimensionar uma imagem para um quadrado de um quarto de milhão de pixels. Ao trabalhar com imagens grandes, você precisa garantir a disponibilidade de grandes recursos de memória. Se a partição de disco temporária padrão for pequena, oriente o ImageMagick para usar outra partição com uma quantidade suficiente de espaço livre.

 Português