เกริ่นก่อนนะครับไม่ได้เก่ง PHP อะไรมาก แต่เพราะปัญหาจากการทำงาน จำเป็นต้องหาวิธีต่างๆ มีทั้งที่ทำตามแล้วไม่สำเร็จ หรือสำเร็จแล้วไม่ได้ดั่งใจที่ต้องการ หรือ/และ อาจไม่ตรงกับงานที่วางไว้ เลยเอามาแจกครับสำหรับท่านที่ต้องการต้องการหรือนำไปใช้เพื่อการดัดแปลงต่อไปปล.ต้องบอกก่อนว่า ผมได้ทดสอบแล้วและใช้งานได้จริงๆ
ผลลัพท์ของ Code ที่แจกนี้
กำหนดข้อความลงในภาพ
- ภาพที่แนบในไฟล์ชื่อ photo.jpg เป็นขนาด 470x246pxs
- ตัวอักษรชื่อ browallia-new ซึ่งแล้วแต่ว่าท่านชอบฟอนต์ไหนก็เปลี่ยนตามต้องการ
ผมได้เขียน Comment อธิบายไว้บาง Code เผื่อบางท่านจะงง
ตรวจสอบไฟล์ด้วยนะครับที่จะอัพโหลด1. uppic.php
2. photoinc.php
3. photo.jpg ไฟล์ภาพต้นฉบับ
ไฟล์ uppic.php
<?php
require_once "photoinc.php"; //นำเข้าไฟล์ฟังก์ชั่น
$date = date('Y-m-dd');
$time = strftime("%H%M%S");
$seqid= "$date$time";
$photo = "$seqid".".jpg";
$SourceFile = 'photo.jpg'; //รูปที่ต้องการใส่วอเตอร์มาร์ค
$DestinationFile = "Folder ที่เก็บภาพ/"."$photo"; //ไฟล์รูปภาพใหม่ที่จะจัดเก็บ
$WaterMarkText = "สวัสดีทุกคน"; //ข้อความ 1 ที่จะใส่
$WaterMarkText2 = 'Happy New Year'; //ข้อความ 2 ที่จะใส่
watermarkImage ($SourceFile, $WaterMarkText,$WaterMarkText2, $DestinationFile);
print "<img src='$DestinationFile' border='0'><br>";
?>
ไฟล์ photoinc.php
<?php
function watermarkImage ($SourceFile, $WaterMarkText,$WaterMarkText2, $DestinationFile) {
list($width, $height) = getimagesize($SourceFile);
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($SourceFile);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height);
$black = imagecolorallocate($image_p, 0, 0, 0);//กำหนดสี
$font = 'BROWAB.TTF';//กำหนดชื่อฟอนต์
$font_size = 60; //กำหนดขนาดฟอนต์ของ WaterMarkText
$font_size2 = 30; //กำหนดขนาดฟอนต์ของ WaterMarkText2
//--------เริ่มคำนวณ
$width = 470; //กำหนดความกว้างของภาพ
$box = imageTTFbbox( $font_size, 0, $font, $WaterMarkText );
$textwidth = abs( $box[2] ); //อยากรู้ความกว้างของตัวอักษร 1 กี่ Pixels ให้ echo "$textwidth";
$Xcenter = (int)($width/2 );
$width_x = $Xcenter-($textwidth/2);
$box2 = imageTTFbbox( $font_size2, 0, $font, $WaterMarkText2 );
$textwidth2 = abs( $box2[2] ); //อยากรู้ความกว้างของตัวอักษร 2 กี่ Pixels ให้ echo "$textwidth";
$Xcenter2 = (int)($width/2 );
$width2_x = $Xcenter2-($textwidth2/2);
//--------จบการคำนวณ
imagettftext($image_p, $font_size, 0, $width_x, 125, $black, $font, $WaterMarkText);
imagettftext($image_p, $font_size2, 0, $width2_x, 175, $black, $font, $WaterMarkText2);
//อธิบาย imagettftext($image_p,ขนาดฟอนต์,องศ์ษา,แนวนอน,แนวตั้ง,สี,ชื่อฟอร์ตที่ใช้,ข้อความ);
if ($DestinationFile<>'') {
imagejpeg ($image_p, $DestinationFile, 100);
} else {
header('Content-Type: image/jpeg');
imagejpeg($image_p, null, 100);
};
imagedestroy($image);
imagedestroy($image_p);
};
?>
ผลลัพท์ที่ได้
ผมได้อัพโหลดไว้ให้แล้วที่
http://www.mediafire.com/file/h27gaqke1bg7tgl/pic.rar *** โหลดกันได้เลยครับ
ท่านที่คิดว่ามีประโยชน์ ฝากกด + หรือ ขอบคุณก็แล้วแต่ท่านสะดวกนะครับ ไม่ว่ากัน
และเป็นการแทนคำขอบคุณ Thaiseoboard แห่งนี้ด้วย ที่ทำให้ผมมีวิชาติดตัวไปได้มากขึ้น
ปล.จำไม่ได้ว่าผมนำ code นี้จะที่ไหนมา เพราะก็หาหลายๆ ที่รวมกัน
ขอบคุณทั้ง Thaiseo / Thaicreate มา ณโอกาสนี้แระกันครับ