الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الكتابة على الصورة

بدأه إسماعيل عنجريني في 12 ديسمبر 2005 · 11 رد · 1,341 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ...

كتبت الكود التالي ليغير ارتفاع صورة معينة ويترك مجالاً باللون الأبيض أسفل الصورة وذلك لكتابة نص معين ... المشكلة هي أن اللغة العربية لا تظهر بشكل صحيح عند تنفيذ الشيفرة فمن يساعدنا وجزاه الله خيراً سلفاً :)

function ResizeImage($path, $Value)
{
	$OldImage = imagecreatefromjpeg ($path);
	$OldWidth = imagesx($OldImage);
	$OldHeight = imagesy($OldImage);

               $NewImage = imagecreatetruecolor ($OldWidth, $OldHeight + $Value);
	$col = imagecolorallocate ($NewImage, 255, 255, 255);

	imagefilledrectangle($NewImage, 0, 0, $OldWidth, $OldHeight + $Value, $col);
	imagecopy($NewImage, $OldImage, 0, 0, 0, 0, $OldWidth, $OldHeight);

	$b = imagecolorallocate ($NewImage, 0, 0, 0);
	$s = 'ÇáÝÑíÞ ÇáÚÑÈí ááÈÑãÌÉ';
	$FontId = 3;
    imagestring ($NewImage, $FontId, $OldWidth / 2 - strlen($s), $OldHeight + ($Value / 2) - 2, $s, $b);

    return $NewImage;
}
#4

عند استخدام المكتبة المذكورة أعلاه ظهر لي الخطأ التالي:

Warning: x|‍ in c:\apache\htdocs\test\imagewriter\image.php

function ResizeImage($path, $Value)
{
	include("arabicGD.php");

	$OldImage = imagecreatefromjpeg ($path);

	$OldWidth = imagesx($OldImage);

	$OldHeight = imagesy($OldImage);

    $NewImage = imagecreatetruecolor ($OldWidth, $OldHeight + $Value);

	$col = imagecolorallocate ($NewImage, 255, 255, 255);

	imagefilledrectangle($NewImage, 0, 0, $OldWidth, $OldHeight + $Value, $col);

	imagecopy($NewImage, $OldImage, 0, 0, 0, 0, $OldWidth, $OldHeight);

	$b = imagecolorallocate ($NewImage, 0, 0, 0);
	$s = 'الفريق';

imagettftext($NewImage, 20, 0, 30,40, $b, "arabicFont.ttf",$arabicGD->parse($s));

    return $NewImage;
}
#5

ممكن تكون المشكلة احدى الاحتمالات التالية :

1- مكتبة GD غير مثبتة على الجهاز او مثبتة الاصدار القديم منها ؟؟؟

2- لا يوجد صلاحية لتعديل ملف الصورة

Let's google help you Before ask

--------------------------

My Blog : www.phplover.net

#6
mostafasawan كتب:
ممكن تكون المشكلة احدى الاحتمالات التالية :

1- مكتبة GD غير مثبتة على الجهاز او مثبتة الاصدار القديم منها ؟؟؟

2- لا يوجد صلاحية لتعديل ملف الصورة

كل الأمور التي ذكرتها أخي مصطفى محلولة لكن الخطأ يظهر في السطر:

imagettftext($NewImage, 20, 0, 30,40, 
$b, "arabicFont.ttf",$arabicGD->parse($s));

على فكرة قرأت في ملفات المساعدة للـ PHP أنه عند استخدام ملف خط جديد يجب توليده على نفس الجهاز الذي ُيشغل عليه فما صحة هذا الكلام

#7

انا اعرف انه لازم يكون الخط معرف على السيرفر

و على كل المتصفح لا يصلح الا الصورة و الذي يتولى عملية الكتابة على الصورة هو السيرفر و يرسلها للمتصفح

تم تعديل هذه المشاركة بواسطة mostafasawan في 14 ديسمبر 2005 في 12:53

Let's google help you Before ask

--------------------------

My Blog : www.phplover.net

#8

هل من أحد جرب هذه المكتبة, إلى الآن لم أستطع حل المشكلة ... فهل هناك طريقة أخرى للكتابة على الصورة بالعربي

#9

جرب الخط tahoma فهو يدعم العربية.

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#10

كيف سأجرب الخط Tahoma, تعليمة الكتابة على الصورة تقبل الخط من رقم 1 إلى 5 بدون أي إمكانية لتحديد نوع الخط :(

#11

لا استطيع تحميل المكتبه arabicgd

ممكن احد عنده المكتبه يرفعها وجزاه الله كل خير

شكرا

#12

وجدت مكتبه اسمها arabicgd وجربتها ولكن الحروف العربيه تظهر مربعات متجاوره !!!

جربت خط arial.ttf وخط tahoma.ttf لكن لا جدوى

وهذا الكود الذى جربته

<?php
include("arabicGD.php");
header("Content-type: image/png");
$im = imagecreatetruecolor(400, 30);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

$text = 'النص العربى هنا';
$font = 'arial.ttf';

imagettftext($im, 20, 0, 10, 20, $black, $font, $arabicGD->parse($text));
imagepng($im);
?>

شكرا

مواضيع مشابهة