05-04-26, 03:26 PM
(05-04-26, 03:02 PM)nnnjk كتب : يعطيك العافيه
اشتغل الكود فقط في الروابط في المواضيع والمشاركات
لاكن لم يختم صور المرفقات كما كان سابقا
لان المرفقات ضروري اختمها
PHP كود :
<?php
error_reporting(E_ALL & ~E_NOTICE);
header('Content-Type: image/png');
define("MDIR", dirname(__FILE__));
// ================== إعدادات ==================
$watermark_text = "الشعافينمنحرب"; // نص الختم
$font_size = 5; // خطوط PHP الافتراضية 1-5
$band_height = 25;
$save_dir = MDIR . "/wmark_/";
// ================== دالة تحميل الصورة ==================
function downloadImage($url, $save_path) {
// محاولة file_get_contents
$data = @file_get_contents($url);
if ($data !== false) {
file_put_contents($save_path, $data);
return true;
}
// fallback إلى cURL
if (function_exists('curl_init')) {
$ch = curl_init($url);
$fp = fopen($save_path, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_exec($ch);
curl_close($ch);
fclose($fp);
return file_exists($save_path);
}
return false;
}
// ================== جلب الصورة ==================
if (!isset($_GET['src'])) {
die('No image');
}
$src = trim($_GET['src']);
$filename = md5($src) . ".img";
$local_image = $save_dir . $filename;
if (filter_var($src, FILTER_VALIDATE_URL)) {
// إذا كان رابط خارجي
if (!file_exists($local_image)) {
if (!downloadImage($src, $local_image)) {
die('فشل تحميل الصورة');
}
}
} else {
// إذا كان مسار محلي (مرفق)
$local_image = MDIR . '/' . ltrim($src, '/');
if (!file_exists($local_image)) {
die('الصورة غير موجودة');
}
}
// ================== تحديد نوع الصورة ==================
$info = getimagesize($local_image);
if (!$info) {
die('Invalid image');
}
switch ($info['mime']) {
case 'image/jpeg':
$im = imagecreatefromjpeg($local_image);
break;
case 'image/png':
$im = imagecreatefrompng($local_image);
break;
case 'image/gif':
$im = imagecreatefromgif($local_image);
break;
case 'image/webp':
$im = imagecreatefromwebp($local_image);
break;
case 'image/bmp':
$im = imagecreatefrombmp($local_image);
break;
default:
die('نوع صورة غير مدعوم');
}
// ================== إنشاء طبقة الختم ==================
$width = imagesx($im);
$stamp = imagecreatetruecolor($width, $band_height);
// خلفية سوداء
$black = imagecolorallocate($stamp, 0, 0, 0);
imagefilledrectangle($stamp, 0, 0, $width, $band_height, $black);
// لون النص
$white = imagecolorallocate($stamp, 255, 255, 255);
// كتابة النص (بدون خطوط خارجية)
imagestring($stamp, $font_size, 10, 5, $watermark_text, $white);
// ================== دمج الختم ==================
$stamp_w = imagesx($stamp);
$stamp_h = imagesy($stamp);
imagecopymerge(
$im,
$stamp,
imagesx($im) - $stamp_w,
imagesy($im) - $stamp_h,
0,
0,
$stamp_w,
$stamp_h,
60
);
// ================== إخراج الصورة ==================
imagepng($im);
// تنظيف
imagedestroy($im);
imagedestroy($stamp);
?>طريقة الاستخدام
للرابط الخارجي :
PHP كود :
watermark.php?src=https://example.com/image.jpg
للمرفق المحلي :
PHP كود :
watermark.php?src=uploads/abc.jpg


![[صورة مرفقة: 177461173141861.gif]](https://up6.cc/2026/03/177461173141861.gif)