تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب اضافة ختم الصور لهذا الكود
#9
PHP كود :
<?php
@set_time_limit(0);
@
ini_set('memory_limit''512M');

function 
download_image($url) {
    $ch curl_init($url);

    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_TIMEOUT => 60,
        CURLOPT_CONNECTTIMEOUT => 30,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_ENCODING => '',
        CURLOPT_HTTPHEADER => [
            'Accept: image/webp,image/*,*/*;q=0.8'
        ],
        CURLOPT_USERAGENT => 'Mozilla/5.0'
    ]);

    $data curl_exec($ch);
    $http curl_getinfo($chCURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($http != 200 || !$data) {
        return false;
    }

    return $data;
}

function 
watermark($file$ext$logo) {

    if (!file_exists($file) || !file_exists($logo)) return false;

    $ext strtolower($ext);

    // تحميل الصورة
    switch ($ext) {
        case 'jpg':
        case 'jpeg':
            $img = @imagecreatefromjpeg($file);
            break;

        case 'png':
            $img = @imagecreatefrompng($file);
            break;

        case 'gif':
            $img = @imagecreatefromgif($file);
            break;

        case 'webp':
            if (function_exists('imagecreatefromwebp')) {
                $img = @imagecreatefromwebp($file);
            } else {
                return false;
            }
            break;

        default:
            return false;
    }

    if (!$img) return false;

    $logo_img = @imagecreatefrompng($logo);
    if (!$logo_img) return false;

    $bw imagesx($img);
    $bh imagesy($img);
    $lw imagesx($logo_img);
    $lh imagesy($logo_img);

    if ($bw $lw 10 || $bh $lh 10) return false;

    $x $bw $lw 5;
    $y $bh $lh 5;

    imagealphablending($imgtrue);
    imagecopy($img$logo_img$x$y00$lw$lh);

    // حفظ الصورة
    switch ($ext) {
        case 'jpg':
        case 'jpeg':
            imagejpeg($img$file90);
            break;

        case 'png':
            imagepng($img$file9);
            break;

        case 'gif':
            imagegif($img$file);
            break;

        case 'webp':
            imagewebp($img$file90);
            break;
    }

    imagedestroy($img);
    imagedestroy($logo_img);

    return true;
}

function 
process_image($url$save_path$logo) {

    // تحميل الصورة
    $data download_image($url);
    if (!$data) return false;

    // استخراج الامتداد
    $ext strtolower(pathinfo(parse_url($urlPHP_URL_PATH), PATHINFO_EXTENSION));

    if (!$ext$ext 'jpg';

    // دعم WebP
    if (!in_array($ext, ['jpg','jpeg','png','gif','webp'])) {
        $ext 'jpg';
    }

    // إنشاء المجلد
    if (!is_dir(dirname($save_path))) {
        mkdir(dirname($save_path), 0755true);
    }

    $file $save_path '.' $ext;

    // حفظ أولي
    file_put_contents($file$data);

    // تحقق من الصورة
    $img = @imagecreatefromstring($data);

    // إذا فشل (خصوصاً WebP)
    if (!$img && $ext == 'webp' && function_exists('imagecreatefromwebp')) {
        $img = @imagecreatefromwebp($file);
    }

    if (!$img) {
        unlink($file);
        return false;
    }

    imagedestroy($img);

    // إضافة watermark
    watermark($file$ext$logo);

    return $file;
}
?>

طريقة الاستخدام : 
PHP كود :
$url "https://example.com/image.webp";
$save "uploads/2026/04/img_1";
$logo "uploads/logo.png";

$result process_image($url$save$logo);

if (
$result) {
    echo "تم الحفظ: " $result;
} else {
    echo "فشل";


جرّب و خبرني
[صورة مرفقة: 177461173141861.gif]
الرد }}}
تم الشكر بواسطة: nnnjk , nnnjk


الردود في هذا الموضوع
RE: طلب اضافة ختم الصور لهذا الكود - بواسطة Amir_Alzubidy - 01-04-26, 05:44 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم