CuDemVN.Wap.Sh



![]() | ![]() ![]() ![]() |
- Hàm đóng dấu hình ảnh thực 100% viết bằng PHP, thích hợp dùng cho mã nguồn blog bằng php, johncms, vbb....
- Hàm dùng tương đối tốt và test khá thành công (tạm thời chưa phát hiện lỗi)
Tính năng:
- Đóng dấu ảnh giữ bản quyền wap/web.
- Đóng dấu bằng text nên dung lượng thay đổi không đáng kể.
- Tạo một ảnh mới rồi đóng dấu xuống dưới nên không làm ảnh hưởng đến nội dung ảnh chính.
- Tính độ dài text nhập vào rồi thay đổi font size cho phù hợp nên 100% text được đóng dấu vào không bị thiếu hay thừa.
.....
- Nội dung hàm kèm giải thích :
Hàm dùng 2 thông số đầu vào là $url và $out, trong đó:
+ $url : Đường dẫn ảnh trên web bạn.
+ $out : Đường dẫn ảnh trả về, thường thì $url và $out cùng giá trị
Hàm:
function watermark_text($url, $out)
{
//Lấy các thông số của ảnh theo link (chiều rộng, chiều cao, kiểu)
$size= getimagesize($url);
//Lấy chiều rộng
$source_width=$size[0];
//Lấy chiều cao
$source_height=$size[1];
//Lấy đuôi, kiểu
$type=$size[2];
//Đọc đuôi và mở quá trình xử lý
switch($type){
case '2':
$img = imagecreatefromjpeg($url);
break;
case '1':
$img = imagecreatefromgif($url);
break;
case '3':
$img = imagecreatefrompng($url);
break;
case '6':
$img = imagecreatefromwbmp($url);
break;
default:
$img = imagecreatefromjpg($url);
break;
}
//Chuỗi text cần đóng dấu
$string ="CuDemVN.Wap.Sh - Share Code Wapmaster";
//Link font chữ trên web bạn
$font = 'font.ttf';
//Fontsize của chữ, nó sẽ thay đổi ở dưới nên bạn ko cần thay đổi ở đây nhé
$fontsize = 10;
//Góc quay của text dc đóng dấu, nên để là 0 nha
$gocquay = 0;
//Lấy thông só của text tạo bới fontsize, string, gocquay, font ở trên
$bbox = imageftbbox($fontsize, $gocquay, font, $string);
//Lấy chiều rộng chữ
$width_t = abs($bbox[0])+ abs($bbox[2]);
//Lấy chiều cao chữ
$height_t = abs($bbox[1])+ abs($bbox[5]);
//Thay đổi font size nếu chiều rộng ảnh quá lớn
while($width_t < $source_width){
$fontsize = $fontsize + 1;
$bbox = imageftbbox($fontsize, $gocquay, $font, $string);
$width_t = abs($bbox[0])+ abs($bbox[2]);//chieu rong chu
$height_t = abs($bbox[1])+ abs($bbox[5]);// chieu cao chu
}
//Thay đổi fontsize nến chiều rộng ảnh quá nhỏ
while($width_t > $source_width){
$fontsize=$fontsize-1;
$bbox = imageftbbox($fontsize, $gocquay, $font, $string);
$width_t = abs($bbox[0])+ abs($bbox[2]);//chieu rong chu
$height_t = abs($bbox[1])+ abs($bbox[5]);// chieu cao chu
}
//Lấy chiều cao cho phần được đóng dấu
$source_height_new = $height_t + $height_t/2;
//Tạo chiều cao cho ảnh mới(chiều cao ảnh củ + chiều cao chữ new)
$height_new = $source_height + $source_height_new;
//Tạo ảnh nền
$source= @color($source_width, $height_new);
//Tạo màu và tô cho ảnh nền(nền màu trắng)
$color = imagecolorallocate($source, 255, 255, 255);
imagefill($source, 0, 0, $color);
//Chữ màu đen
$text_color=imagecolorallocate($source, 0, 0, 0);
//Tạo độ x cần đóng dấu
$vtx = 3;
//Tạo đô y
$vty = $height_new - $source_height_new/3;
//Đóng dấu ảnh
//ImagettfText(Link ảnh gốc, Font size, độ nghiêng, tạo độ X , tạo độ Y, Màu, Font, Chữ muốn in)
imagettftext($source, $fontsize, 0, $vtx, $vty, $text_color, $font, $string);
//Copy ảnh chính vào ảnh nền
imagecopy($source, $img, 0, 0, 0, 0, $source_width, $source_height);
//Kết thúc quá trình đóng dấu
switch($type){
case '2':
@imagejpeg($source, $out,0775);
case '1':
imagegif($source, $out,0775);
case '3':
imagepng($source, $out,0775);
case '6':
imagewbmp($source, $out,0775);
default:
imagejpeg($source, $out,0775);
break;
}
return true;
}
Các bạn sử dùng hàm thì nhớ thêm font chữ đuôi .ttf vào nhé, nhớ chỉnh sửa đường dẫn cho phù hợp
Nguồn: Không rõ

Đánh giá: 4.5/ 5, 1041 bình chọn
