بكسل - Powered by vBulletin


افاتار الكاتب
الصورة الرمزية mr graphics
mr graphics
مؤسس موقع بكسل (رحمه الله)
الدولة : -
الإهتمامات : -
الوظيفة : -
صورة الدرس الرمزية
معلومات الدرس
تقييم الدرس : 2 تقييمات , بـمعدل 4.50
اضافة حقوق موقعك لآلاف الصور برمجياً
السلام عليكم ورحمة الله وبركاته

درس اليوم في التعامل مع الصور، وهو عن كيفية اضافة حقوق موقعك أو اي نص تريده الى اي كمية من الصور..
في الواقع لن يتم اضافة الحقوق الى الصور فعليا ولكنا سنقوم بطباعتها فوق الصورة عن طريق الخاصية mod_rewrite فكما سترى ستظل الصور كما هي عند استعراضها من FTP ولكن ستظهر الحقوق فقط للزوار او لاي شخص تريده..

متطلبات الدرس:
تحتاج الى وجود خاصية mod_rewrite + مكتبة الصور GD 2 على الأقل وهي اشياء متوافرة في أي استضافة تدعم PHP


الخطوة الأولى:
اضافة الكود التالي الى ملف .htaccess ورفعه الى مجلد الصور
كود PHP:
# .htaccess
RewriteEngine On
RewriteCond 
%{REQUEST_FILENAME} -f

RewriteRule 
.(gif|jpeg|jpg|png)$ watermark.php [QSA,NC
الخطوة الثانية:
اضافة الكود التالي الى ملف watermark.php ورفعه الى مجلد الصور:

كود PHP:
<?php
// watermark.php

// Path the the requested file
$path $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];

// Load the requested image
$image imagecreatefromstring(file_get_contents($path));

$w imagesx($image);
$h imagesy($image);

// Load the watermark image
$watermark imagecreatefrompng('watermark.png');
$ww imagesx($watermark);
$wh imagesy($watermark);

// Merge watermark upon the original image
imagecopy($image$watermark$w-$ww$h-$wh00$ww$wh);

// Send the image
header('Content-type: image/jpeg');
imagejpeg($image);
exit();
?>
الخطوة الثالثة:
رفع ملف بالاسم watermark.png يحتوي على العلامة المائية او حقوق الموقع (ويفضل أن تون خلفيته شفافة لكي يعطي مظهرا اجمل)

الخطوة الرابعة:
الذهاب الى عنوان أي صورة بالمتصفح لتجد الحقوق قد تم طباعتها عليها

أمثلة عملية:
http://www.montadaphp.net/lessons/wa...ng/nature1.jpg
http://www.montadaphp.net/lessons/wa...ng/nature2.jpg
http://www.montadaphp.net/lessons/wa...ng/nature3.jpg


لتحميل المثال كاملاً بالمرفقات


من درس: Watermarking images with PHP
==================================
http://www.montadaphp.net/showthread.php?t=971