PHP 개발 사진 워터마크 튜토리얼 작업 사진

작업 사진

<?php
     /*打开图片*/
     //配置图片路径
     $src = "https://img.php.cn/upload/course/000/000/004/581454f755fb1195.jpg";
     //获取图片的基本信息
     $info=getimagesize($src);
     //通过图像的编号来获取图片的类型
     $type=image_type_to_extension($info[2],false);
     //内存中创建一个和我们图像类型一致的图像
     $fun = "imagecreatefrom{$type}";
     //把要操作的图片复制到内存中
     $image=$fun($src);
     /*操作图片*/
     //设置水印路径
     $image_Mark = "https://img.php.cn/upload/course/000/000/004/5814594e3e7c9278.png";
     //获取水印的基本信息
     $info2=getimagesize($image_Mark);
     //通过水印的图像编号来获取水印的图片类型
     $type2=image_type_to_extension($info2[2],false);
     //在内存中创建一个和水印图像一致的图像类型
     $fun2="imagecreatefrom{$type2}";
     //把水印复制到内存中
     $water = $fun2($image_Mark);
     //合并图片
     imagecopymerge($image,$water,60,40,0,0,$info2[0],$info2[1],30);
     //销毁水印图片
     imagedestroy($water);
 
 ?>

코드 설명:

getimagesize - 이미지 크기 가져오기

image_type_to_extension - 접미사 이름을 반환합니다.

그런 다음 메모리에 저장하고 imagecopymerge 기능을 사용하여 이미지를 병합하고 워터마크를 추가합니다.

imagecopymerge — 이미지의 일부를 복사하고 병합합니다

bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

src_x, src_y에서 시작하여 src_im 이미지의 좌표를 너비로 복사합니다. src_w의 높이와 src_h의 높이 dst_im 이미지의 좌표는 dst_x이고 dst_y의 위치에 있습니다. 두 이미지는 0~100 범위의 pct를 기준으로 병합됩니다. pct = 0이면 실제로는 아무것도 하지 않고, 100이면 실제로는 아무것도 하지 않습니다. 팔레트 이미지의 경우 이 함수는 트루컬러 이미지에 대한 알파 투명도를 구현하는 imagecopy()와 정확히 동일합니다.

지속적인 학습
||
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
/**/
//
$src = "https://img.php.cn/upload/course/000/000/004/581454f755fb1195.jpg";
//
$info=getimagesize($src);
//
$type=image_type_to_extension($info[2],false);
//
$fun = "imagecreatefrom{$type}";
//
$image=$fun($src);
/**/
//
$image_Mark = "https://img.php.cn/upload/course/000/000/004/5814594e3e7c9278.png";
//
$info2=getimagesize($image_Mark);
//
$type2=image_type_to_extension($info2[2],false);
//
$fun2="imagecreatefrom{$type2}";
//
$water = $fun2($image_Mark);
//
imagecopymerge($image,$water,60,40,0,0,$info2[0],$info2[1],30);
//
imagedestroy($water);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
图片放大关闭