php gd裁剪图片代码,php课程 8-32 如何使用gd库进行图片裁剪和缩放

php课程 8-32 如何使用gd库进行图片裁剪和缩放

一、总结

一句话总结:图片缩放到图片裁剪就是改变原图截取的位置以及截取的宽高。

1、电商网站那么多的图片,如果全部加载卡得慢的很,所以他们是怎么解决这个问题的(从图片处理的角度回答)?

图片缩放,大图缩放成小图

2、gd库中图片缩放和图片裁剪的关系?

图片缩放包括图片裁剪

把原图的所有东西弄到新图里面叫图片缩放,弄一部分就叫图片裁剪。

图片缩放到图片裁剪就是改变原图截取的位置以及截取的宽高

1 <?php

2 //图片缩放 3 $src_image=imagecreatefromjpeg('cs.jpg'); 4 $dst_image=imagecreatetruecolor(200,200); 5 $dst_x=0; 6 $dst_y=0; 7 $src_x=0; 8 $src_y=0; 9 $dst_w=300; 10 $dst_h=200; 11 $src_w=1920; 12 $src_h=1200; 13 14 imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h); 15 16 imagejpeg($dst_image,'t_cs.jpg'); 17 18 ?>

3、gd库图片缩放和图片裁剪的函数是哪个?

14 imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h);

4、gd库水印的函数是哪个?

12 imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h);

5、如何把图片放到画布中?

imagecreatefromjpeg('cs.jpg')

3 $src_image=imagecreatefromjpeg('cs.jpg');

6、如何创建一个新的画布?

imagecreatetruecolor

4 $dst_image=imagecreatetruecolor(200,200);

7、如何获取图片的各种信息?

getimagesize函数

4 function thumb($src_file,$dst_w,$dst_h){ 5 6 $srcarr=getimagesize($src_file);

二、如何使用gd库进行图片裁剪和缩放

1、相关知识

图片缩放:

imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h);

图片裁剪:

imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h);o

图片水印:

imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h);

[图片缩放完整的实例]

2、代码

图片缩放

1 <?php2 //图片缩放

3 $src_image=imagecreatefromjpeg('cs.jpg');4 $dst_image=imagecreatetruecolor(200,200);5 $dst_x=0;6 $dst_y=0;7 $src_x=0;8 $src_y=0;9 $dst_w=300;10 $dst_h=200;11 $src_w=1920;12 $src_h=1200;13

14 imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h);15

16 imagejpeg($dst_image,'t_cs.jpg');17

18 ?>

图片裁剪

1 <?php2 //图片缩放

3 $src_image=imagecreatefromjpeg('cs.jpg');4 $dst_image=imagecreatetruecolor(200,200);5 $dst_x=0;6 $dst_y=0;7 $src_x=0;8 $src_y=0;9 $dst_w=200;10 $dst_h=200;11 $src_w=1500;12 $src_h=1200;13

14 imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h);15

16 imagejpeg($dst_image,'t_cs.jpg');17

18 ?>

图片水印

1 <?php2 //图片缩放

3 $src_im=imagecreatefromjpeg('logo.jpg');4 $dst_im=imagecreatefromjpeg('cs.jpg');5 $dst_x=0;6 $dst_y=0;7 $src_x=0;8 $src_y=0;9 $src_w=200;10 $src_h=50;11

12 imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h);13

14 imagejpeg($dst_im,'w_cs.jpg');15 ?>

imagesx和imagesy获取图片宽高

1 <?php2 //图片缩放

3 $src_im=imagecreatefromjpeg('logo.jpg');4 $dst_im=imagecreatefromjpeg('cs.jpg');5 $dst_x=0;6 $dst_y=0;7 $src_x=0;8 $src_y=0;9 $src_w=imagesx($src_im);10 $src_h=imagesy($src_im);11

12 imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h);13

14 imagejpeg($dst_im,'w_cs.jpg');15 ?>

图片缩放完整实例

1 <?php2 //图片缩放完整实例(包含等比例)

3

4 function thumb($src_file,$dst_w,$dst_h){5

6 $srcarr=getimagesize($src_file);7

8 //变量函数

9 switch($srcarr[2]){10 case 1:

11 $imagecreatefrom="imagecreatefromgif";12 $imageout="imagegif";13 break;14

15 case 2:

16 $imagecreatefrom="imagecreatefromjpeg";17 $imageout="imagejpeg";18 break;19

20 case 3:

21 $imagecreatefrom="imagecreatefrompng";22 $imageout="imagepng";23 break;24 }25

26 $src_image=$imagecreatefrom($src_file);27

28 //等比例计算真实目标资源的宽和高

29 $src_w=imagesx($src_image);30 $src_h=imagesy($src_image);31

32 $scale=($src_w/$dst_w)>($src_h/$dst_h)?($src_w/$dst_w):($src_h/$dst_h);33

34 $dst_w=floor($src_w/$scale);35 $dst_h=floor($src_h/$scale);36

37 $dst_image=imagecreatetruecolor($dst_w,$dst_h);38

39 $dst_x=0;40 $dst_y=0;41 $src_x=0;42 $src_y=0;43

44

45 imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h);46

47 $t_name='t_'.basename($src_file);48 $t_dir=dirname($src_file);49 $s_file=$t_dir.'/'.$t_name;50

51 $imageout($dst_image,$s_file);52 }53

54 $src_file='imgs/cs.jpg';55

56 thumb($src_file,200,200);57

58 ?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GDPHP的一个图像处理扩展,可以用于创建、修改和处理各种图像,例如生成缩略图、添加水印、绘制形状和文字等。下面是一些常用的GD代码示例: 1. 创建一个空白的图片 ```php $width = 300; $height = 200; $image = imagecreatetruecolor($width, $height); ``` 2. 从文件中读取一张图片进行缩放 ```php $filename = 'image.jpg'; $width = 300; $height = 200; // 获取图片信息 list($old_width, $old_height, $type) = getimagesize($filename); // 根据图片类型创建一个新的图像 switch ($type) { case IMAGETYPE_JPEG: $old_image = imagecreatefromjpeg($filename); break; case IMAGETYPE_PNG: $old_image = imagecreatefrompng($filename); break; case IMAGETYPE_GIF: $old_image = imagecreatefromgif($filename); break; default: die('Unsupported image type'); } // 创建一个新的缩放后的图像 $new_image = imagecreatetruecolor($width, $height); imagecopyresampled($new_image, $old_image, 0, 0, 0, 0, $width, $height, $old_width, $old_height); // 输出图像到浏览器 header('Content-Type: image/jpeg'); imagejpeg($new_image); // 释放内存 imagedestroy($old_image); imagedestroy($new_image); ``` 3. 添加文字水印 ```php $filename = 'image.jpg'; $text = 'Hello, world!'; // 获取图片信息 list($width, $height, $type) = getimagesize($filename); // 根据图片类型创建一个新的图像 switch ($type) { case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($filename); break; case IMAGETYPE_PNG: $image = imagecreatefrompng($filename); break; case IMAGETYPE_GIF: $image = imagecreatefromgif($filename); break; default: die('Unsupported image type'); } // 设置字体和颜色 $font = 'arial.ttf'; $color = imagecolorallocate($image, 255, 255, 255); // 添加水印 imagettftext($image, 20, 0, 10, $height - 30, $color, $font, $text); // 输出图像到浏览器 header('Content-Type: image/jpeg'); imagejpeg($image); // 释放内存 imagedestroy($image); ``` 这些只是GD的一些基本用法,还有很多其他功能和选项可供使用。如果你想深入了解GD的更多细节和用法,可以查看PHP官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值