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

[ تمت الإجابة ] الكلام العربى يظهر متبعثر عن طباعته على صوره

بدأه macnux في 6 أبريل 2008 · 13 رد · 1,294 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله

الكود التالى بسيط جدا يطبع الكلام على الصوره باستخدام خط انت تحدده ولكن الكلام العربى يظهر كحروف متبعثره هل احد جرب هذا الكود من قبل

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$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);

// The text to draw
$text = 'النص العربى هنا';
// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>

هل من حل؟

اذا كان لا فهل من بديل؟

شكرا

#2

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

header("Content-Type: text/html; charset=windows-1256");
#3

شكرا لردك

المشكله ليست فى الترميز لان windows-1256 او utf-8 يظهران العربيه جيدا لكن المشكله فى ارسال الحروف وعرضها

وجدت مكتبه اسمها arabicGD ومستخدمين هذه المكتبه يقولون انها تعمل معهم جيدا ولكن حاولت استعمالها ولا زالت الحروف كما هى تظهر مربعات

وهنا الكود الذى كتبته والكلاس الذى استعملته

<?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);
?>

والكلاس فى المرفقات

وكاتب الموضوع هنا

http://www.swalif.net/softs/swalif45/softs64755/#post411003

شكرا

arabicGD.zip

تم تعديل هذه المشاركة بواسطة macnux في 7 أبريل 2008 في 14:25

#4

السلام عليكم ..

اطلعت على المكتبه المرفقة . الكود الذي كتبته سليم 100% , ولكن يتوجب عليك ان تستخدم خطوط تروتيب ttf الخاصه بمجموعه خطاط هشام مثل HBOLD.TTF .

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

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

gazabigBanner.jpg

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

#5

شكرا لردك واهتمامك وجزاك الله خير

استخدمت الكود التالى واعطانى خظأ يقول the image cannot be displayed because it contain errors

مع مراعاه استخدام الخط الذى ذكرته لى وهو HBold.TTF

<?php
header("Content-type: image/png");
include("arabicGD.php");
$im = imagecreatetruecolor(400, 30);

$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

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

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

اين الخطأ اذن؟

شكرا

#6

اخي الكريم , هل نصبت الخط في جهازك ؟؟ز

ابحث عن مجموعة خطوط هشام ونصبها , او فقط قم بنسخ ملف الـ TTF الى المجلد الموجود فيها ملف الـ PHP الذي يحتوي برنامجك ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

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

gazabigBanner.jpg

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

#7

شكرا لردك اخى الكريم

ملف الخط موجود بالفعل فى نفس مسار الاسكربت

ممكن تجرب الكود السابق لانه لا يعمل معى

#8

اخي الكريم , كودك السابق ناقصه صبغ الصورة باللون الابيض , حيث انه سيظهر كل شئ اسود ..

اضف السطر

imagefilledrectangle($im, 0, 0, 399, 29, $white);

الى ماقبل تعريف المتغير $text ..

انظر الصورة لكي تتأكد انه يعمل ..

post-37582-1207634468_thumb.jpg

تم تعديل هذه المشاركة بواسطة محمد معاشر في 8 أبريل 2008 في 09:02

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

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

gazabigBanner.jpg

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

#9

اسف جدا للسؤال مره اخرى

هذا الكود الذى كتيته ويعطى الخطأ كما اخبرتك

cannot modify header information because is already sent by line 3

حتى هذا الخطأ يظهر مع الكود الموجود فى موقع ال PHP الخاص بالداله imagettftext

<?php
header("Content-type: image/png");
include("arabicGD.php");

$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 = 'HBold.TTF';

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

ممكن تعطينى الكود الذى اظهر الصوره عندك ولك حزيل الشكر

تم تعديل هذه المشاركة بواسطة macnux في 8 أبريل 2008 في 18:00

#10

الكود الذي وضعته في ردك الاخير يعمل عندي بشكل طبيعي ..

لا ادري ولكن هناك خطب ما . اولاً انت في البداية ان قلت ان الكود يعمل ولكنه يظهر الحروف مبعثرة .

وفي المشاركة #5 , قلت ان الخطأ يظهر the image cannot be displayed because it contain errors وهذا اعتقد انه كان يحصل بسبب ملف الـ TTF .

وفي ردك الاخير

اقتباس
هذا الكود الذى كتيته ويعطى الخطأ كما اخبرتك

cannot modify header information because is already sent by line 3

يظهر خطأ اخر غير الذي اخبرت به في المشاركة #5 ..

هل مكتبه الـ GD مفعله لديك في الملف php.ini .

ارفقت لك المثال , نفذ الملف كا هو واعلمنا بالنتائج ..

image2.zip

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

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

gazabigBanner.jpg

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

#11

شكرا لردك واهتمامك

جربتها واشتغل وجزاك الله كل خير

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

فكيف افرق بين الكلمات وبعضها حتى استخدم الكلاس من عدمه ؟ هل من حل لهذا ؟

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

هل اضافه ذلك فى الجدول tbl ؟ ام تعديل فى الخط المستخدم ؟

شكرا لك

#12
اقتباس
ولكن المكتبه لا تعمل مع الحروف الانجليزيه اذن

فكيف افرق بين الكلمات وبعضها حتى استخدم الكلاس من عدمه ؟ هل من حل لهذا ؟

نعم , بالطبع توجد طريقه لحلها , وهي اننا اولاً يجب ان نحدد ما اذا كان النص نص انجليزي او بمعني اخر Ascii او غير ذلك (UTF-8) , وبعد التحديد نستطيع ان نحدد الخط ونحدد هل سنستخدم المنهج Parse الخاص بالمكتبة ArabGD ام لا ..

اعددت مثال بسيط لهذا في المرفقات : سوف تجد ملف Image_Gen.php وهذا هو المحرك المسئول عن انتاج الصورة , ويتم استدعائه بالصيغة :

اقتباس

والملف image3.html والذي عباره عن صفحه ويب بسيطه فيها مربع نص وزر وصورة تمثل الصورة المتولدة وكود جافا سكربت بسيط لتعديل الـ src الخاص بالصورة بحسب النص الموجود في مربع النص . وبقية الملفات معروفه ..

المثال سهل , واي استفسار يمكنك العودة الى هنا ,, موفق ..

Image_Gen.zip

تم تعديل هذه المشاركة بواسطة محمد معاشر في 9 أبريل 2008 في 10:55

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

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

gazabigBanner.jpg

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

#13

جزاك الله كل خير

اعجبنى الداله is_utf8

ولكن هل استطيع تصغير حجم الخط قليلا؟

شكرك على مجهودك وجعله الله فى ميزان حسناتك

تم تعديل هذه المشاركة بواسطة macnux في 9 أبريل 2008 في 13:14

#14
اقتباس
ولكن هل استطيع تصغير حجم الخط قليلا؟

نعم , من خلال الوسيط الثاني للدالة imagettftext ..

العفو اخي الكريم , ووفقك الله ,,

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

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

gazabigBanner.jpg

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…