ImageMagick
Şəkillər Yaratmaq və Çevirmək üçün Açıq Mənbə C Kitabxanası
Pulsuz C API istifadə edərək Bitmap şəkillərini yaradın, redaktə edin, tərtib edin, oxuyun və çevirin. O, C proqramlarında şəkillərin ölçüsünü dəyişməyə, çevirməyə, əks etdirməyə, fırlatmağa, təhrif etməyə, kəsməyə və çevirməyə imkan verir.
ImageMagick, proqram tərtibatçılarına öz C proqramlarında təsvirin emal imkanlarını daxil etmək səlahiyyəti verən açıq mənbəli kitabxanadır. Kitabxana çarpaz platformadır və Linux, Windows, Mac Os X, iOS, Android OS və bir çox başqa sistemlərdə rahat şəkildə işləyə bilər. O, C kodundan istifadə edərək rastr şəkillərini oxumaq, göstərmək, yaratmaq, konvertasiya etmək, dəyişdirmək və dəyişdirmək üçün dəstəyi ehtiva edir.
ImageMagick-in əla xüsusiyyətlərindən biri, müxtəlif aparıcı fayl formatları arasında şəkilləri dəqiq və peşəkar şəkildə çevirmək qabiliyyətidir. Kitabxanaya JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG və daha çox kimi 200-dən çox şəkil faylı formatları üçün dəstək daxildir. Kitabxana həmçinin asanlıqla rəsm, qrafika və animasiya qrafikası üçün dəstək təmin etmişdir.
Kitabxana çox xüsusiyyətlərlə zəngindir və təsvirin ölçüsünün dəyişdirilməsi və sürüşdürülməsi, təsvirin əks olunması və fırlanması, təhrif edilməsi, şəkillərin dəyişdirilməsi, təsvirin rənglərinin tənzimlənməsi, müxtəlif xüsusi effektlərin tətbiqi, bulanıqlıq və ya kəskinləşdirmə və ya həddi, şəkil gradientləri kimi bəzi ümumi təsvirin işlənməsi funksiyalarına dəstək daxildir. , canny kənar aşkarlanması riyazi ifadə istifadə edərək, mətn, xətlər, çoxbucaqlı, ellips çəkmək və daha çox. Bu yaxınlarda kitabxanaya OCR istifadə edərək şəkillərdən mətn çıxarmaq üçün dəstək də daxil edilmişdir.
ImageMagick ilə işə başlamaq
Aşağıdakı əmrdən istifadə edərək ən son mənbələri klonlayın
ImageMagick-i GitHub vasitəsilə quraşdırın.
git clone https://github.com/ImageMagick/ImageMagick.git
Və ya quraşdırmaq üçün aşağıdakı əmrdən istifadə edin.
RPM vasitəsilə ImageMagick-i quraşdırın.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Şəkli digər formatlara çevirin
Açıq mənbəli C kitabxanası ImageMagick proqram proqramçılarına şəkilləri öz proqramlarında dəstəklənən digər fayl formatlarına çevirməyə imkan verir. İstifadəçilər başqa formata çevirməzdən əvvəl format parametrini təqdim etməlidirlər. Kitabxana, transformasiyaları tətbiq etməzdən əvvəl şəkli daxili olaraq digər formatlara çevirir. Kitabxana BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF və XPM kimi bir neçə məşhur şəkil formatına çevrilməyi dəstəkləyir. Kitabxananın gözəl cəhətlərindən biri şəkli çevirərkən istifadənin asanlığıdır. O, həmçinin şəklin ölçüsünü azaltmaq və onu istədiyiniz formatda yazmazdan əvvəl müxtəlif effektlər tətbiq etmək imkanı verir.
ImageMagick vasitəsilə GIF-i JPEG Şəkilə çevirin
#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;
}
C API istifadə edərək Image Gradients dəstəyi
Açıq mənbəli C kitabxanası ImageMagick proqram tərtibatçılarına C əmrlərindən istifadə edərək çox rəngli görüntü qradiyenti yaratmağa imkan verir. Üfüqi, şaquli, dairəvi və ya elliptik formalardan istifadə edərək asanlıqla bir və ya bir neçə rəngin tədricən qarışığını yarada bilərsiniz. Kitabxana xətti qradiyentin istiqamətini təyin etmək, radial qradiyent üçün mərkəz nöqtəsinin koordinatlarını müəyyən etmək, qradiyenti şəkil ölçülərindən daha böyük və ya daha kiçik bölgə ilə məhdudlaşdırmaq və s. haqqında. Bundan əlavə, qeyri-xətti boz miqyaslı gradientlər üçün çıxışı saxlamazdan əvvəl -colorspace RGB -colorspace grey əlavə edin.
C API vasitəsilə Sadə Boz Tonlu Qradient yaradın
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();
}
C vasitəsilə Şəkillərə Xüsusi Effektlər Tətbiq edin
ImageMagick açıq mənbəli C kitabxanası şəkillərə müxtəlif növ effektlərin tətbiqi üçün funksionallıq təmin etmişdir. O, bir neçə C kodu sətirindən istifadə edərək bulanıqlaşdırma, kəskinləşdirmə, eşik həddi, kölgələr yaratmaq, lələk formaları və ya şəklin rənglənməsi kimi bir neçə vacib funksiyanı təmin etmişdir. Radio bulanıqlığı və hərəkət bulanıqlığı kimi bəzi xüsusi bulanıqlıq effektləri də dəstəklənir.
C API vasitəsilə Tiled Font Effektini tətbiq edin
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");
Böyük Şəkillər Dəstəyi
ImageMagick C kitabxanası çox böyük şəkillərlə işləmək üçün dəstək verdi. O, tərtibatçılara öz şəkil emal proqramlarında Meqa-, Giga- və ya Tera-piksel ölçülərinə qədər şəkilləri açmağa, oxumağa, emal etməyə və ya yazmağa imkan verir. Kitabxana şəklin ölçüsünü dörddə bir milyon piksel kvadrata qədər dəyişməyə imkan verir. Böyük şəkillərlə işləyərkən böyük yaddaş resurslarının mövcudluğundan əmin olmalısınız. Defolt müvəqqəti disk bölməsi kiçikdirsə, kifayət qədər boş yerə malik başqa bölmədən istifadə etmək üçün ImageMagick-ə rəhbərlik edin.