1. منتجات
  2.   صورة
  3.   ImageMagick

ImageMagick

 
 

افتح مكتبة المصدر ج لإنشاء وتحويل الصور

إنشاء الصور النقطية وتحريرها وتكوينها وقراءتها وتحويلها باستخدام واجهة برمجة تطبيقات C المجانية. يسمح بتغيير حجم الصور وقلبها وعكسها وتدويرها وتشويهها وقصها وتحويلها داخل تطبيقات C.

ImageMagick هي مكتبة مفتوحة المصدر تمنح مطوري البرامج القدرة على تضمين إمكانات معالجة الصور داخل تطبيقات C الخاصة بهم. المكتبة متعددة الأنظمة الأساسية ويمكن تشغيلها بسلاسة على أنظمة التشغيل Linux و Windows و Mac Os X و iOS و Android OS وغيرها الكثير. وقد تضمن دعمًا لقراءة وعرض وإنشاء وتحويل وتعديل وتعديل الصور النقطية باستخدام كود C.

تتمثل إحدى الميزات الرائعة لبرنامج ImageMagick في قدرته على تحويل الصور بدقة واحترافية بين تنسيقات ملفات رائدة مختلفة. تضمنت المكتبة دعمًا لأكثر من 200 تنسيق لملفات الصور مثل JPEG و PNG و GIF و HEIC و Exif و TIFF و CGM و DPX و EXR و WebP و Postscript و PDF و SVG وغيرها الكثير. كما قدمت المكتبة دعمًا للرسم بالإضافة إلى الرسومات والرسومات المتحركة بسهولة.

المكتبة غنية بالميزات وتتضمن دعمًا لبعض ميزات معالجة الصور الشائعة مثل تغيير حجم الصورة وتقليبها ، وانعكاس الصور وتدويرها ، والتشويه ، وتحويل الصور ، وتعديل ألوان الصورة ، وتطبيق مؤثرات خاصة متنوعة ، ضبابية أو شحذ أو عتبة ، وتدرجات الصورة ، كشف الحواف الحذق ، رسم النص ، الخطوط ، المضلعات ، الحذف ، باستخدام التعبير الرياضي وغيرها الكثير. قامت المكتبة مؤخرًا بتضمين دعم لاستخراج النص من الصور باستخدام OCR.

Previous Next

الشروع في العمل مع ImageMagick

استنساخ أحدث المصادر باستخدام الأمر التالي

قم بتثبيت ImageMagick عبر GitHub.

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

أو استخدم الأمر التالي لتثبيته.

قم بتثبيت ImageMagick عبر RPM.

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

تحويل الصورة إلى تنسيقات أخرى

مكتبة ImageMagick مفتوحة المصدر C تتيح لمبرمجي البرامج تحويل الصور إلى تنسيقات ملفات أخرى مدعومة داخل تطبيقاتهم الخاصة. يحتاج المستخدمون إلى توفير معلمة التنسيق قبل التحويل إلى تنسيق آخر. تقوم المكتبة داخليًا بتحويل الصورة إلى تنسيقات أخرى مسبقًا ، قبل تطبيق التحويلات. تدعم المكتبة التحويل إلى العديد من تنسيقات الصور الشائعة مثل تنسيقات BMP و CMYK و GIF و JPEG و PBM و PNG و RGB و SVG و TIFF و XPM. أحد الجوانب الرائعة للمكتبة هو سهولة الاستخدام أثناء تحويل الصورة. كما يوفر إمكانية تصغير حجم الصورة وتطبيق تأثيرات مختلفة قبل كتابتها بالصيغة المطلوبة.

تحويل GIF إلى صورة JPEG عبر 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; 
}

دعم تدرجات الصور باستخدام C API

مكتبة ImageMagick مفتوحة المصدر C تتيح لمطوري البرامج إنشاء تدرجات صور بألوان متعددة باستخدام أوامر C. يمكنك بسهولة إنشاء مزيج تدريجي من لون واحد أو عدة ألوان باستخدام أشكال أفقية أو رأسية أو دائرية أو بيضاوية. عززت المكتبة التدرجات اللونية من خلال استخدام العديد من التعريفات مثل تحديد اتجاه التدرج الخطي ، وتحديد إحداثيات النقطة المركزية للتدرج الشعاعي ، وتقييد التدرج إلى منطقة أكبر أو أصغر من أبعاد الصورة ، وهكذا على. علاوة على ذلك ، بالنسبة للتدرجات اللونية غير الخطية ، يرجى إضافة -colorspace RGB -colorspace Grey قبل حفظ الإخراج.

قم بإنشاء تدرج بسيط بتدرج الرمادي عبر 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();
}

تطبيق المؤثرات الخاصة على الصور عبر C.

توفر مكتبة ImageMagick مكتبة C مفتوحة المصدر وظائف لتطبيق أنواع مختلفة من التأثيرات على الصور. لقد قدم العديد من الوظائف المهمة مثل التمويه ، أو التوضيح ، أو الحد ، أو إنشاء الظلال ، أو الأشكال المتدرجة ، أو صبغ صورة باستخدام سطرين من كود C. هناك بعض تأثيرات التمويه الخاصة مثل تمويه الراديو وضبابية الحركة مدعومة أيضًا.

تطبيق Tiled Font Effect عبر 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");

دعم الصور الكبيرة

قدمت مكتبة C ImageMagick دعمًا للعمل مع الصور الكبيرة جدًا. إنه يمكّن المطورين من فتح الصور أو قراءتها أو معالجتها أو كتابتها بأحجام Mega أو Giga أو Tera-pixel داخل تطبيقات معالجة الصور الخاصة بهم. تتيح المكتبة تغيير حجم الصورة إلى ربع مليون بكسل مربع. أثناء العمل مع الصور الكبيرة ، تحتاج إلى التأكد من توفر موارد ذاكرة كبيرة. إذا كان قسم القرص المؤقت الافتراضي صغيرًا ، فقم بإرشاد ImageMagick لاستخدام قسم آخر به مساحة خالية كافية.

 عربي