فيما يلي مثال لشيفرة برمجية تستخدم في التصغير عادة ما أستخدم شيئا مشابها له في الدورات التدريبية لطلابي، حيث ستجد تعليقات وافية فيه باللغة العربية.
ويمكن بقليل من التعديل أن تحصل على الوظيفة الأخرى، فهي في نهاية المطاف نسخ لجزء من صورة تتضمن شعار الموقع واسمه، ولصق هذا الجزء مجددا على إحدى زوايا الصورة الأخرى أو أسفلها، مع تمنياتي بأن أكون قد أوضحت لك الأمر بشكل أفضل
كود PHP:
// هذا السطر حتى نقول للمستعرض ان ما نرسله ليس إلا صورة
header("(anti-spam-content-type:) image/jpeg");
// اسم الصورة التي سيتم تصغيرها، يمكن أن تأتي هذه القيمة من أي مكان آخر
$file = 'image.jpeg';
// هذه التعليمة تعطيك أبعاد الصورة ضمن الملف
// أي الطول والعرض بالإضافة النوع وذلك ضمن مصفوفة
$dim = GetImageSize($file);
// حفظ الطول والعرض ضمن متحولات
$w = $dim[0];
$h = $dim[1];
// تحديد الأبعاد الجديدة على أنها ربع الأبعاد السابقة
$new_w = round($w/4);
$new_h = round($h/4);
// هناك تعليمة لقراءة ملف الصورة تختلف باختلاف نوع الصورة
// نعتمد هنا على القيمة المعادة من التابع السابق لتحديد نوع الصورة
// وهذا أفضل من تصديق لا حقة الملف وما تقوم
if($dim[2] == 1) $from = ImageCreateFromGIF($file);
if($dim[2] == 2) $from = ImageCreateFromJPEG($file);
if($dim[2] == 3) $from = ImageCreateFromPNG($file);
// إنشاء كائن جديد لنضع به لاحقا الصورة المصغرة
// يوجد أيضا تابع آخر يدعى
// ImageCreate
// لا يسمح لكائن الصورة بامتلاك اكثر من 256 درجة لونية
// لذا لم نستخدمه هنا
$to = ImageCreateTrueColor($new_w, $new_h);
// هذا قلب التطبيق، وهو تابع يستخدم لنسخ جزء من صورة ولصقه
// في مكان محدد ضمن كائن الصورة الأخرى، وهو عام الاستخدام
// لمزيد من المعلومات حول هذا التابع انصح بقراءة دليل استخدام اللغة
// هنالك تابع آخر يستخدم لداء هذه الوظيفة لكني لا أنصح به لأنه يعطي صور اقل دقة وهو
// ImageCopyResized
ImageCopyResampled($to, $from, 0, 0, 0, 0, $new_w, $new_h, $w, $h);
// المرحلة الأخيرة هي مرحلة الإخراج والتي يقوم بها هذا التابع
// هنالك أيضا تابع آخر لإخراج الصورة بتنسيق
// PNG
// وثالث بتنسيق
// GIF
// الوسيط الأول لهذا التابع هو كائن الصورة، والثاني هو اسم الملف
// الذي يراد تخزينها فيه، وهنا تركناه فارغا ليتم إرسالها مباشرة للمستعرض
// أما الوسيط الثالث فهو نسبة الضغط وهو مقدار من 100
// من الهام جدا إرسال الصورة بذات التنسيق الذي تمت الإشارة غليه في التعليمة الأولى
ImageJPEG($to, '', 80);
// من الهام تحرير الذاكرة بعد الإنتهاء من العملية وحفظ الناتج أو غرساله للمستعرض
ImageDestroy($from);
ImageDestroy($to);