>  기사  >  백엔드 개발  >  PHP 5 텍스트와 그림이 혼합된 워터마크와 썸네일

PHP 5 텍스트와 그림이 혼합된 워터마크와 썸네일

巴扎黑
巴扎黑원래의
2016-12-07 14:11:171106검색

1. 워터마크 제작

1. 워터마크 텍스트

PHP에서 이미지에 텍스트 워터마킹은 주로 GD 라이브러리에서 제공하는 imagettftext() 함수를 통해 이루어집니다.

과정은 다음과 같습니다. 이미지 로드 => 워터마크 텍스트 색상 조정 => 워터마크 추가

<?php
$img = &#39;Desert.jpg&#39;;//图像的路径。这里以 Windows 7 自带的一幅沙漠的图片为例
$img_info = getimagesize($img);
//载入图像到PHP,转成 PHP 可识别的编码
switch($img_info[2]) {
  case 1:
    $res = imagecreatefromgif($img);//返回一图像标识符,代表了从给定的文件名取得的图像。 
    break;
  case 2:
    $res = imagecreatefromjpeg($img);
    break;
  case 3:
    $res = imagecreatefrompng($img);
    break;    
}
// 为一幅图像分配颜色(相当于 PhotoShop 的调色板)
// imagecolorallocate ( resource image, int red, int green, int blue )  返回一个标识符,代表了由给定的 RGB 成分组成的颜色。
$te = imagecolorallocate($res,225,225,225);
//rand(0,10)倾斜度。msyh.ttf 是微软雅黑字体,可在 C:\Windows\Fonts 找到。然后拷贝到该文件的目录下
imagettftext($res,12,rand(0,10),20,80,$te,&#39;msyh.ttf&#39;,"我的博客 www.woqilin.net");
switch($img_info[2]) {
  case 1:
    header("Content-type: image/gif");
    imagegif($res);//以 GIF 格式将图像输出到浏览器
    break;
  case 2:
    header("Content-type: image/jpeg");
    imagejpeg($res);
    break;
  case 3:
    header("Content-type: image/png");
    imagepng($res);
    break;    
}
?>

2. 워터마크 이미지

PHP의 이미지에 이미지 워터마크를 추가하는 것은 imagecopy() 함수를 통해 이루어집니다.

<?php
$img = &#39;Desert.jpg&#39;;//图像的路径。这里以 Windows 7 下一幅沙漠的图片为例,像素为 1024 X 768
$img_info = getimagesize($img);
//载入图像到PHP
switch($img_info[2]) {
  case 1:
    $res = imagecreatefromgif($img);//返回一图像标识符,代表了从给定的文件名取得的图像。 
    break;
  case 2:
    $res = imagecreatefromjpeg($img);
    break;
  case 3:
    $res = imagecreatefrompng($img);
    break;    
}
//新建一个真彩色图像
$new = imagecreatetruecolor(400,400);
//bool imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
//将一幅图像中的一块正方形区域拷贝到另一个图像中。dst_image 和 src_image 分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝(如果 dst_image 和 src_image 相同的话)区域,但如果区域交迭的话则结果不可预知。
imagecopyresized($new,$res,0,0,0,0,400,400,$img_info[0],$img_info[1]);
header("Content-type: image/png");
imagepng($new);// 以 PNG 格式将图像输出到浏览器
?>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.