ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: Behide2 ที่ 27 ตุลาคม 2013, 09:05:46



หัวข้อ: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: Behide2 ที่ 27 ตุลาคม 2013, 09:05:46
คือมีภาพต้นฉบับหนึ่งภาพเป็นพื้นสีวางขนาด 500x500pixels มีไฟล์ สมมุติชื่อ wallpaper.jpg

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

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

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

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

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

ขอคำแนะนำทีครับ
ขอบคุณครับ
 :wanwan017:


หัวข้อ: Re: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: zenon ที่ 27 ตุลาคม 2013, 09:23:38
ไม่ทราบ ว่าทำ html เป็นใหมครับ  สมุติว่าทำเป็นนะครับ

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

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



หัวข้อ: Re: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: Freedomlover ที่ 27 ตุลาคม 2013, 09:28:18
ลองศึกษาดูครับ   http://www.thaicreate.com/php/forum/027311.html


หัวข้อ: Re: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: zenon ที่ 27 ตุลาคม 2013, 09:33:03
ส่วนเรื่อง Form มันจะเกี่ยวข้องกับ Database ทันทีฉะนั้น
หากต้องการแค่โค๊ด ให้ หนีไป ที่ Plugin ของ CMS ที่ใช้ หากต้องการศึกษา ต้องศึกษา php เบื้องต้นไประดับนึงแล้ว ไปศึกศา mysql เป็น data base ตัวอย่างฟรี และง่ายที่สุด



หัวข้อ: Re: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: adidog ที่ 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 ด้วย

ตัวอย่าง

(http://www.uppic.org/image-D25C_526C8442.jpg)


หัวข้อ: Re: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: maximus101 ที่ 27 ตุลาคม 2013, 16:19:31
ผมว่าใช้ JQuery ช่วยอาจจะช่วยให้ง่ายขึ้นได้ครับ (เรื่องสีกับ Font ปรับเอาจาก CSS นะครับ)  :wanwan019:

http://jquerydemo.com/animate-background-image.aspx


หัวข้อ: Re: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: Behide2 ที่ 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>";

?>


หัวข้อ: Re: ขอคำแนะนำในการใส่ข้อความลงในภาพด้วย php หน่อยครับ
เริ่มหัวข้อโดย: adidog ที่ 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);
     
?>