كيفية اخراج الصوره بعد التعديل عليها في php ضمن الوسم img في html

احتاج الى التعديل على الصوره وتحديد ابعادها الخ..

وفي نفس الوقت لا اريد حفض الصوره الجديده المعدله في الذاكره فقط اريد عرضها في صفحة الويب ضمن الوسم img.

<?php
$image = imagecreatetruecolor(200, 200);
#you canuse image/jpeg and image/gif for jpg and gif images
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

الكود السابق ينشئ صوره جديده ويقوم بعرضها على المتصفح ولكن انا اريد عرضها على وسم img في الصفحه.

اتمنا ان يكون السؤال مفهوم وتتم الاجابة سريعا

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

يوجد لديك حلين الحل الأول هو حفظ الصورة لديك على الخادم وبعد ذلك إستدعاء الصورة .

ولحفظ الصورة يجب تمرير المسار الذي تريد حفظه فيها إلى الدالة imagepng هكذا :

<?php
$image = imagecreatetruecolor(200, 200);
#you canuse image/jpeg and image/gif for jpg and gif images
header('Content-Type: image/png');
$imagePath = 'saved_image.png'; // اسم الملف الذي تريد حفظ الصورة فيه
imagepng($image, $imagePath); // حفظ الصورة
imagedestroy($image);
echo "تم حفظ الصورة في: $imagePath";
?>

وهكذا سيتم حفظ الصورة في نفس المجلد بإسم saved_image.png ويمكنك تضمينها في html كما تريد .

والحل الثاني هو عدم إستدعاء الملف الذي ينشأ الصورة مباشرة ولكن يمكن إستدعاءه من html كالتالي :

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>عرض الصورة</title>
</head>
<body>
    <h1>صورة مخصصة</h1>
    <img src="generate_image.php" alt="صورة مخصصة" />
</body>
</html>

لاحظ هنا في عنصر ال img نقوم بإستدعاء الملف الذي به الكود الذي أرفقته وهكذا ستظهر الصورة لديك بداخل عنصر img

في حال توليد HTML من خلال سكريبت PHP مباشرًة فاستخدم دالة base64_encode لتحويل الصورة إلى سلسلة base64 كالتالي:

<?php
$image = imagecreatetruecolor(200, 200);

ob_start();
imagepng($image);
$image_data = ob_get_clean();


$image_base64 = base64_encode($image_data);


echo '<img src="data:image/png;base64,' . $image_base64 . '">';


imagedestroy($image);
?>

ob_start() يبدأ بافر الإخراج و $imageData = ob_get_contents() يحصل على محتوى بافر الإخراج.

و $base64Image = base64_encode($imageData) يقوم بتحويل البيانات إلى base64.

و imagedestroy($image) يقوم بإغلاق الصورة المعدلة.

ولو تريد تحويل صورة موجودة لديك بالفعل استخدم دالة imagecreatefromjpeg

$image = imagecreatefromjpeg('car.jpg');