ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ  (อ่าน 2528 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Behide2
Newbie
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 66



ดูรายละเอียด
« เมื่อ: 27 ตุลาคม 2013, 09:05:46 »

คือมีภาพต้นฉบับหนึ่งภาพเป็นพื้นสีวางขนาด 500x500pixels มีไฟล์ สมมุติชื่อ wallpaper.jpg

ต้องการนำข้อความใส่ลงไปในภาพนี้เช่น

"สวัสดี ประเทศไทย
สยามเมืองยิ้ม"

หมายเหตุ คำว่า สวัสดี เป็นตัวสีแดง ใหญ่กว่าคำว่าประเทศไทย ซึ่งมีสีน้ำเงิน และบรรทัดต่อมาเป็นคำว่า สยามเมืองยิ้ม สีเขียว

ไม่ทราบเขียน php ยังไง ทราบมาว่าใช้ pd2 แต่สามารถปรับขนาดและสีได้หรือไม่ครับ

และถ้าเขียนข้อความผ่านฟอร์มโดยแต่งฟอร์น แต่งข้อความและให้อัพลงภาพเลยได้มั้ยคับ

ขอคำแนะนำทีครับ
ขอบคุณครับ
 wanwan017
บันทึกการเข้า

สคริปเว็บบอลเสร็จหมาดๆ พร้อมเสิร์ฟทันที ราคา พิเศษเพียง 599 บาท ราคานี้ 10 ท่านแรก ระบบใช้งานง่าย ไม่จำกัดโดเมน Demo : football.gintiew.com สนใจจัดมาได้เลย
zenon
คนรักเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 174



ดูรายละเอียด
« ตอบ #1 เมื่อ: 27 ตุลาคม 2013, 09:23:38 »

ไม่ทราบ ว่าทำ html เป็นใหมครับ  สมุติว่าทำเป็นนะครับ

php  ต้องเข้าใจก่อน ว่า *.php ใช้เพื่อ เอกสาร การเขียน โปรแกรม php  ไม่ใช่การจับแปะ หรือ Drag & Drop (หลักการเขีบนโปรแกรมต้องไปอ่านเอง)
ฉะนั้นส่ิงเจ้าของกระทู้พูด การตกแต่งมันจะเป็นส่วน ของ html & CSS จะเป็น static ถ้าอยากให้เป็น Dynamic ต้องพึงหลักการเขียนโปรแกรม เพิ่มครับ

Example
<?php
  echo "Hello";
  print("<img src="imag.jpg" />");
?>

« แก้ไขครั้งสุดท้าย: 27 ตุลาคม 2013, 09:40:34 โดย zenon » บันทึกการเข้า

*-*
Freedomlover
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 207
ออฟไลน์ ออฟไลน์

กระทู้: 2,097



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 27 ตุลาคม 2013, 09:28:18 »

ลองศึกษาดูครับ   http://www.thaicreate.com/php/forum/027311.html
บันทึกการเข้า

โฮสติ้ง คุณภาพสูง ราคาเริ่มต้น 50 บาท/เดือน ทดลองใช้ฟรี 30 วัน
SSD VPS แรงๆ
จดโดเมนเพียง 400 บาท/ปี
ด้วยประสบการณ์กว่า 12 ปี  Tel 0840640213
zenon
คนรักเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 174



ดูรายละเอียด
« ตอบ #3 เมื่อ: 27 ตุลาคม 2013, 09:33:03 »

ส่วนเรื่อง Form มันจะเกี่ยวข้องกับ Database ทันทีฉะนั้น
หากต้องการแค่โค๊ด ให้ หนีไป ที่ Plugin ของ CMS ที่ใช้ หากต้องการศึกษา ต้องศึกษา php เบื้องต้นไประดับนึงแล้ว ไปศึกศา mysql เป็น data base ตัวอย่างฟรี และง่ายที่สุด

« แก้ไขครั้งสุดท้าย: 27 ตุลาคม 2013, 09:38:00 โดย zenon » บันทึกการเข้า

*-*
adidog
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 238
ออฟไลน์ ออฟไลน์

กระทู้: 1,859



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 27 ตุลาคม 2013, 10:13:11 »


<?php
      $font = 'font/xxx.ttf';  // ที่เก็บฟอนต์ที่รองรับภาษาไทย
      $text1 = 'สวัสดีครับ';
      $text2 = 'มาสด้า3';
      $image1 = imagecreatefromjpeg('mazda3.jpg');
      
      $font_color1 = imagecolorallocate($image1, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255) );  // สุ่มสี font
      $font_color2 = imagecolorallocate($image1, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255) );  // สุ่มสี font


      imagettftext($image1, 50, 0, 600, 100, $font_color1, $font, $text1);  // ใส่ข้อความ1ลงไป กำหนดตำแหน่ง
      imagettftext($image1, 50, 0, 700, 200, $font_color2, $font, $text2);  // ใส่ข้อความ2ลงไป กำหนดตำแหน่ง

      header('Content-type: image/jpeg');

      imagejpeg($image1);
      imagedestroy($image1);
      
?>


อย่าลืมเซฟเป็น utf-8 ด้วย

ตัวอย่าง

« แก้ไขครั้งสุดท้าย: 27 ตุลาคม 2013, 10:14:38 โดย adidog » บันทึกการเข้า

Certain Dri Certain Dri
คุณแม่มือใหม่ คุณแม่มือใหม่
maximus101
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 27 ตุลาคม 2013, 16:19:31 »

ผมว่าใช้ JQuery ช่วยอาจจะช่วยให้ง่ายขึ้นได้ครับ (เรื่องสีกับ Font ปรับเอาจาก CSS นะครับ)  wanwan019

http://jquerydemo.com/animate-background-image.aspx
บันทึกการเข้า

สนใจอุปกรณ์กีฬา เสื้อผ้า เครื่องดนตรี ดูที่่ร้านได้เลยนะครับ www.pnsport.com
Behide2
Newbie
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 66



ดูรายละเอียด
« ตอบ #6 เมื่อ: 28 ตุลาคม 2013, 07:40:31 »

ขอบคุณทุกท่านครับ ตอนน้ผมเขียนได้แล้ว แต่ติดปัญหาตรงที่
ต้องการข้อความอยู่ตรงกลางว่า

"Welcome to Thailand
Thailand of Smile
Thank you for your visit"

ต้องเขียนเพิ่มตรงไหนครับ (จาก code ด้านล่าง)
และถ้ากำหนดตัวแปรเป็น

$String = "Welcome to Thailand
Thailand of Smile
Thank you for your visit"

บรรทุดก็ห่างเยอะมาก ต้องเขียนยังไงครับ รบกวนทีนะครับ
 wanwan017

<?php
$height = 464;
$width = 464;
$fontsize = 50;
if (!isset($String))
$String = "Welcome to Thailand";
$im = ImageCreateFromJpeg("images/wall.jpg"); // Path Images

$blue = imagecolorallocate($im,0,0,255);
$green = imagecolorallocate($im,0,255,0);
$myfont = $_POST[fonts];
$font = "ANGORF.TTF";
$textwidth = $width;
while (1){
    $box = imageTTFbbox( $fontsize, 0, $font, $String );
    $textwidth =  abs( $box[2] );
    $textbodyheight = (abs($box[7]))-2;
    if ( $textwidth < $width - 20 )
        break;
    $fontsize--;
}
$Xcenter = (int)($width/2 );
$Ycenter = (int)($height/2 );
imageTTFtext($im, $fontsize, 0,(int) ($Xcenter-($textwidth/2)),(int)($Ycenter+(($textbodyheight)/2) ), $blue, $font, $String );

imagegif($im,"images/img.jpg");
echo "<img src=images/img.jpg>";

?>
บันทึกการเข้า

สคริปเว็บบอลเสร็จหมาดๆ พร้อมเสิร์ฟทันที ราคา พิเศษเพียง 599 บาท ราคานี้ 10 ท่านแรก ระบบใช้งานง่าย ไม่จำกัดโดเมน Demo : football.gintiew.com สนใจจัดมาได้เลย
adidog
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 238
ออฟไลน์ ออฟไลน์

กระทู้: 1,859



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 28 ตุลาคม 2013, 08:53:27 »

<?php
      $font_name = 'font/xxxx.ttf';  // ที่เก็บฟอนต์ที่รองรับภาษาไทย
      $text1 = 'สวัสดีครับ';
      $text2 = 'มาสด้า3';
      $source = 'xxxxx.jpg';
      $image1 = imagecreatefromjpeg($source);

      $size = getimagesize($source);
      $w = $size[0];//ความกว้างของรูป
      $h = $size[1];//ความสูงของรูป

      $font_size = 20;

      $bbox1 = imagettfbbox($font_size, 0, $font_name, $text1);
      $bbox2 = imagettfbbox($font_size, 0, $font_name, $text2);

     $text1_w = $bbox1[4];//หาความกว้างของ text1
     $text2_w = $bbox2[4];//หาความกว้างของ text2

     $post1 = ($w/2) - ($text1_w/2);//ตำแหน่งที่จะแสดงข้อความกึ่งกลาง คือ (w ของรูป /2) แล้วลบด้วย text1_w/2
     $post2 = ($w/2) - ($text2_w/2);

     $font_color1 = imagecolorallocate($image1, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255) );  // สุ่มสี font
          $font_color2 = imagecolorallocate($image1, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255) );  // สุ่มสี font


          imagettftext($image1, $font_size, 0, $post1, $h/2, $font_color1, $font_name, $text1);  // ใส่ข้อความ1ลงไป กำหนดตำแหน่ง
          imagettftext($image1, $font_size, 0, $post2, $h/3, $font_color2, $font_name, $text2);  // ใส่ข้อความ2ลงไป กำหนดตำแหน่ง

          header('Content-type: image/jpeg');

          imagejpeg($image1);
          imagedestroy($image1);
     
?>
บันทึกการเข้า

Certain Dri Certain Dri
คุณแม่มือใหม่ คุณแม่มือใหม่
หน้า: [1]   ขึ้นบน
พิมพ์