Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > การสร้างรูปภาพด้วย PHP จะให้เป็นภาษาไทยได้งัยครับ ใครทราบช่วยหน่อยครับ ตอนนี้กำลังหาคำตอบอย



 

การสร้างรูปภาพด้วย PHP จะให้เป็นภาษาไทยได้งัยครับ ใครทราบช่วยหน่อยครับ ตอนนี้กำลังหาคำตอบอย

 



Topic : 009276

Guest




จะให้เป็นภาษาไทยได้งัยครับ

ใครทราบช่วยหน่อยครับ ตอนนี้กำลังหาคำตอบอยู่


Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 27 ก.ค. 2549 23:42:28 By : i.kob View : 4558 Reply : 9
 

 

No. 1

Guest


$pic = "modules/".$module_name."/images/certificate.jpg"; //รูปภาพขนาด 900x640
$string1 = "ข้อความที่ 1";
$string2 = "ข้อความที่ 2";
$string3 = "ข้อความที่ 3";
$string4 = "ข้อความที่ 4";
$im = imagecreatefromjpeg("$pic"); // ตำแหน่งรูปภาพ
$color = imagecolorallocate($im, 000,000,000); // สีของข้อความ
$size = GetimageSize("$pic");
$width = $size[0] ;
$px2 = ( $width - strlen($string2) ) / 2 ; // ตำแหน่งเริ่มต้น
$px3 = ( $width - strlen($string3) ) / 3 ; // ตำแหน่งเริ่มต้น
$font = "modules/".$module_name."/images/laith.ttf"; //ชนิดของฟอนท์
imagestring($im, 900, 750, 60, $string1, $color); //ตำแหน่งข้อความ1
imagettftext($im, 36, 0, $px2, 310, $color, $font, $string2); //ตำแหน่งข้อความ2
imagettftext($im, 18, 0, $px3, 360, $color, $font, $string3); //ตำแหน่งข้อความ3
imagettftext($im, 24, 0, 400, 446, $color, $font, $string4); //ตำแหน่งข้อความ4
imagejpeg($im);
imagedestroy($im);




แต่เศร้านิดหนึ่งรูปแบบฟอนท์ไทยไม่รับ 555555555555
ต้องขยาย
$string1 = "ข้ อ ค ว า ม ที่ 1";
$string2 = "ข้ อ ค ว า ม ที่ 2";
$string3 = "ข้ อ ค ว า ม ที่ 3";
$string4 = "ข้ อ ค ว า ม ที่ 4";
ถึงจะพอใช้ได้แฮะ

หาต่อดีกว่าเรา???????
ใครช่วยได้ช่วนต่อหน่อยครับ






Date : 28 ก.ค. 2549 01:10:33 By : i.kob
 


 

No. 2

Guest


เก่งๆ ถามเองตอบเอง สร้างสรรค์ดีคับ 555


Date : 28 ก.ค. 2549 11:53:03 By : -
 

 

No. 3

Guest


ถึงเดี๋ยวนี้ผมยังรอคำตอบจากทุกท่านอยู่นะครับ

$font = "modules/".$module_name."/images/laith.ttf"; //ชนิดของฟอนท์
ภาษาไทยออกมาแล้วแต่ลักษณะของภาษาไทยเราคือ สระ วรรณยุกต์
ตอนนี้ภาษาไทยที่ทำได้เพิ่มเติมคือ

เปลี่ยนจาก
//imagettftext($im, 36, 0, $px2, 310, $color, $font, $string2); //ตำแหน่งข้อความ2

เป็น
for ( $i=0; $i<$count; $i++ ) {
$Ord = Ord($string2[$i]);
$Chr[$i] = Chr($Ord);
$fontWidth = imagefontwidth($Chr[$i]);
$fontHeight = imagefontheight($Chr[$i]);
$pxChr = imagecreate(strlen($Chr[$i]) * $fontWidth, $fontHeight);
$px2 = $px2 + $pxChr;
imagettftext($im, 36, 0, $px2, 310, $color, $font, $Chr[$i]);
}

ให้อ่าน ASi ก่อนแล้วค่อยเปลี่ยนเป็นไทย
ปัญหาก็คือ อย่างที่บอกไว้ข้างต้น สระ วรรณยุกต์ มีความกว้างของตัวอักษรเท่ากับ พยัญชนะมันก็เลยเป็นอย่างงี้
Ex. ป ญ ห ก ค อ

ช่วยต่อนะให้เสร็จหน่อยครับเพราะเสาร์ - อาทิตย์ ต้องเรียนหนังสือ

Date : 28 ก.ค. 2549 14:01:58 By : i.kob
 


 

No. 4

Guest


ที่คุณต้องเขียนข้อความห่าง ๆ กัน เพราะ บางทีตัวหนังสือมันหายไปใช่มั้ยครับ ผมก็เป็นเหมือนกันนะถ้าเป็นแบบนั้น ......copy code ด้านล่างนี้ไว้ใช้กับ code รูปภาพของคุณ( ไม่ต้อง include นะ แล้วเคยมีปัญหาแต่ถ้าคุณ include แล้วไม่มีปัญหาก็แล้วไปละกัน)

<?
#==============================================
# Th2Uni v0.2 (TIS-620 encoder to Unicode)
#==============================================
# Information
# This is PHP function for covert thai encoding string to
# unicode that can use to show thai charactor
# in function ImageTTFText(). It works with tahoma.ttf
# micross.ttf and cordia.ttf.
#==============================================
# Example
# ImageTTFText ($im, 8, 0, 3, 15, $white, "tahoma.ttf",th2uni("thai language"));
#==============================================

GLOBAL $th2unimap,$th2unimap2,$th2unimap3,$th2unimap4,$th2unimap5;

$th2unimap = array(
'ก' => "&#3585;", 'ข' => "&#3586;", 'ฃ' => "&#3587;", 'ค' => "&#3588;", 'ฅ' => "&#3589;", 'ฆ' => "&#3590;", 'ง' => "&#3591;",
'จ' => "&#3592;", 'ฉ' => "&#3593;", 'ช' => "&#3594;", 'ซ' => "&#3595;", 'ฌ' => "&#3596;", 'ญ' => "&#3597;", 'ฎ' => "&#3598;",
'ฏ' => "&#3599;", 'ฐ' => "&#3600;", 'ฑ' => "&#3601;", 'ฒ' => "&#3602;", 'ณ' => "&#3603;", 'ด' => "&#3604;", 'ต' => "&#3605;",
'ถ' => "&#3606;", 'ท' => "&#3607;", 'ธ' => "&#3608;", 'น' => "&#3609;", 'บ' => "&#3610;", 'ป' => "&#3611;", 'ผ' => "&#3612;",
'ฝ' => "&#3613;", 'พ' => "&#3614;", 'ฟ' => "&#3615;", 'ภ' => "&#3616;", 'ม' => "&#3617;", 'ย' => "&#3618;", 'ร' => "&#3619;",
'ฤ' => "&#3620;", 'ล' => "&#3621;", 'ฦ' => "&#3622;", 'ว' => "&#3623;", 'ศ' => "&#3624;", 'ษ' => "&#3625;", 'ส' => "&#3626;",
'ห' => "&#3627;", 'ฬ' => "&#3628;", 'อ' => "&#3629;", 'ฮ' => "&#3630;", 'ฯ' => "&#3631;", 'ะ' => "&#3632;", 'ั' => "&#3633;",
'า' => "&#3634;", 'ำ' => "&#3635;", 'ิ' => "&#3636;", 'ี' => "&#3637;", 'ึ' => "&#3638;", 'ื' => "&#3639;", 'ุ' => "&#3640;",
'ู' => "&#3641;", 'ฺ' => "&#3642;", '฿' => "&#3647;", 'เ' => "&#3648;", 'แ' => "&#3649;", 'โ' => "&#3650;", 'ใ' => "&#3651;",
'ไ' => "&#3652;", 'ๅ' => "&#3653;", 'ๆ' => "&#3654;", '็' => "&#3655;", '่' => "&#3656;", '้' => "&#3657;", '๊' => "&#3658;",
'๋' => "&#3659;", '์' => "&#3660;", 'ํ' => "&#3661;", '๎' => "&#3662;", '๏' => "&#3663;", '๐' => "&#3664;", '๑' => "&#3665;",
'๒' => "&#3666;", '๓' => "&#3667;", '๔' => "&#3668;", '๕' => "&#3669;", '๖' => "&#3670;", '๗' => "&#3671;", '๘' => "&#3672;",
'๙' => "&#3673;", '๚' => "&#3674;", '๛' => "&#3675;");

$th2unimap2 = array( // สำหรับไม่มีสระอยู่ข้างหน้า
'่' => "&#63242;",
'้' => "&#63243;",
'๊' => "&#63244;",
'๋' => "&#63245;",
'์' => "&#63246;"
);

$th2unimap3 = array( // สำหรับมี อักษรมีหางอยู่ข้างหน้า
'ิ' => "&#63233;",
'ี' => "&#63234;",
'ึ' => "&#63235;",
'ื' => "&#63236;",
'่' => "&#63237;",
'้' => "&#63238;",
'๊' => "&#63239;",
'๋' => "&#63240;",
'์' => "&#63241;",
'ั' => "&#63248;",
'ํ' => "&#63249;",
'็' => "&#63250;"
);

$th2unimap4 = array( // สำหรับมี 2 อักษรมีหางอยู่ข้างหน้า และ 1 ตัวอักษรข้างหน้าเป็นสระบน
'่' => "&#63251;",
'้' => "&#63252;",
'๊' => "&#63253;",
'๋' => "&#63254;",
'์' => "&#63255;"
);

$th2unimap5 = array( // สำหรับ ญ ฐ ร่วมกับ สระอุ อู และ อฺ
'ญ' => "&#63247;",
'ฐ' => "&#63232;",
);


function th2unifix($sti) {
GLOBAL $th2unimap, $th2unimap2, $th2unimap3, $th2unimap4, $th2unimap5;
$sto = '';
$len = strlen($sti);
for ($i = 0; $i < $len; $i++) {
if ($th2unimap[$sti{$i}]) {
if ($i < $len && in_array($sti{$i}, Array('ญ','ฐ')) && in_array($sti{$i+1}, Array('ู','ุ','ฺ'))) {
$sto .= $th2unimap5[$sti{$i}];
}
elseif ($i > 1 && in_array($sti{$i-2}, Array('ป','ฝ','ฟ')) &&
($sti{$i-1} == 'ั' || ($sti{$i-1} >= 'ิ' && $sti{$i-1} <= 'ื')) &&
$th2unimap4[$sti{$i}]) {
$sto .= $th2unimap4[$sti{$i}];
}
elseif ($i > 0) {
if (in_array($sti{$i-1}, Array('ป','ฝ','ฟ')) && $th2unimap3[$sti{$i}])
$sto .= $th2unimap3[$sti{$i}];
elseif (!($sti{$i-1} == 'ั' || ($sti{$i-1} >= 'ิ' && $sti{$i-1} <= 'ื')) && $th2unimap2[$sti{$i}])
$sto .= $th2unimap2[$sti{$i}];
else
$sto .= $th2unimap[$sti{$i}];
}
else
$sto .= $th2unimap[$sti{$i}];
}
else
$sto .= $sti{$i};
}
return $sto;
}

function th2uni($sti) {
GLOBAL $th2unimap;
$sto = '';
$len = strlen($sti);
for ($i = 0; $i < $len; $i++) {
if ($th2unimap[$sti{$i}])
$sto .= $th2unimap[$sti{$i}];
else
$sto .= $sti{$i};
}
return $sto;
}
?>

ตัวแปร text ของผมคุณก็แทนที่ด้วยตัวแปร string ของคุณก็ได้
$text = th2unifix('ทดสอบการเขียนภาษาไทย php...');

// ใช้ tahoma font ซึ่งน่าจะมีกันนะ
$font = './TAHOMA.TTF';

//ตรงนี้ก็เพิ่มข้อความลงไปในรูปภาพปกติ
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);


ลองดูละกันแต่ของผมใช้ได้นะ
Date : 28 ก.ค. 2549 17:00:52 By : Ngokung
 


 

No. 5

Guest


Th2Uni v0.2 (TIS-620 encoder to Unicode)

ผมนำมาใช้แล้วเหมือนกันแต่ก็ไม่ทำงาน
font TAHOMA.TTF ของผมใช้ไม่ได้แต่ใช้ laith.ttf ได้
แต่ก็ติดเรื่องเว้นวรรคเหมือนกัน

ผมลองเขียนโค๊ดใหม่เช็คเป็นตัวอักษรแล้วกำหนดขนาดให้ตามชนิดของตัวอักษรมันก็ OK นะ

แต่มันไม่ครอบคลุมทุกอักขระ
ไว้ผมจะส่งโค๊ดกับรูปที่ได้มาให้ดูอีกครั้งนะครับ
Date : 30 ก.ค. 2549 02:29:25 By : i.kob
 


 

No. 6



โพสกระทู้ ( 411 )
บทความ ( 0 )



สถานะออฟไลน์


ใช้ font ที่เป็นไทยสิครับ ลงฟ้อนต์ MS Sans Serif หรือยังครับ
Date : 30 ก.ค. 2549 20:26:15 By : goragod
 


 

No. 7

Guest


ง่ายกว่านั้นครับ
ก่อนอื่นในส่วนของ header ต้องมี <meta http-equiv="Content-Type" content="text/html; charset=tis-620">
จากนั้นใช้ฟังก์ชั่น
$string4 = iconv("TIS-620", "UTF-8", $string4 );
จากนั้นใช้ฟังก์ชั่น imagestring เหมือนเดิม

imagettftext($im, 24, 0, 400, 446, $color, $font, $string4);

Cool
by sutee

Date : 23 ก.ค. 2551 15:15:50 By : Sutee
 


 

No. 8

Guest


ขอบคุณมากๆครับ
Date : 2011-12-05 01:28:15 By : โจ
 


 

No. 9

Guest


ไมไ่ด้นะครับ
Date : 2014-10-11 17:34:13 By : ออฟ
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การสร้างรูปภาพด้วย PHP จะให้เป็นภาษาไทยได้งัยครับ ใครทราบช่วยหน่อยครับ ตอนนี้กำลังหาคำตอบอย
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่