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、代码
图片缩放
<?php
//图片缩放
$src_image=imagecreatefromjpeg('cs.jpg');
$dst_image=imagecreatetruecolor(200,200);
$dst_x=0;
$dst_y=0;
$src_x=0;
$src_y=0;
$dst_w=300;
$dst_h=200;
$src_w=1920;
$src_h=1200; imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h); imagejpeg($dst_image,'t_cs.jpg'); ?>
图片裁剪
<?php
//图片缩放
$src_image=imagecreatefromjpeg('cs.jpg');
$dst_image=imagecreatetruecolor(200,200);
$dst_x=0;
$dst_y=0;
$src_x=0;
$src_y=0;
$dst_w=200;
$dst_h=200;
$src_w=1500;
$src_h=1200; imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h); imagejpeg($dst_image,'t_cs.jpg'); ?>
图片水印
<?php
//图片缩放
$src_im=imagecreatefromjpeg('logo.jpg');
$dst_im=imagecreatefromjpeg('cs.jpg');
$dst_x=0;
$dst_y=0;
$src_x=0;
$src_y=0;
$src_w=200;
$src_h=50; imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h); imagejpeg($dst_im,'w_cs.jpg');
?>
imagesx和imagesy获取图片宽高
<?php
//图片缩放
$src_im=imagecreatefromjpeg('logo.jpg');
$dst_im=imagecreatefromjpeg('cs.jpg');
$dst_x=0;
$dst_y=0;
$src_x=0;
$src_y=0;
$src_w=imagesx($src_im);
$src_h=imagesy($src_im); imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h); imagejpeg($dst_im,'w_cs.jpg');
?>
图片缩放完整实例
<?php
//图片缩放完整实例(包含等比例) function thumb($src_file,$dst_w,$dst_h){ $srcarr=getimagesize($src_file); //变量函数
switch($srcarr[2]){
case 1:
$imagecreatefrom="imagecreatefromgif";
$imageout="imagegif";
break; case 2:
$imagecreatefrom="imagecreatefromjpeg";
$imageout="imagejpeg";
break; case 3:
$imagecreatefrom="imagecreatefrompng";
$imageout="imagepng";
break;
} $src_image=$imagecreatefrom($src_file); //等比例计算真实目标资源的宽和高
$src_w=imagesx($src_image);
$src_h=imagesy($src_image); $scale=($src_w/$dst_w)>($src_h/$dst_h)?($src_w/$dst_w):($src_h/$dst_h); $dst_w=floor($src_w/$scale);
$dst_h=floor($src_h/$scale); $dst_image=imagecreatetruecolor($dst_w,$dst_h); $dst_x=0;
$dst_y=0;
$src_x=0;
$src_y=0; imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h); $t_name='t_'.basename($src_file);
$t_dir=dirname($src_file);
$s_file=$t_dir.'/'.$t_name; $imageout($dst_image,$s_file);
} $src_file='imgs/cs.jpg'; thumb($src_file,200,200); ?>
php课程 8-32 如何使用gd库进行图片裁剪和缩放的更多相关文章
- php 简单的学习GD库绘制图片并传回给前端实现方式
1.基本的GD库绘制图片汇总 2.后台实现小案例 <?php // $img = imagecreatetruecolor(200,40); // var_dump($img); // 利用GD ...
- php用GD库给图片添加水印
php用GD库给图片添加文字水印,整个代码比较简单,DEMO如下: <?php /*打开图片*/ //1.配置图片路径 $src = "aeroplane.jpg"; //2 ...
- PHP面向对象——GD库实现图片水印和缩略图
今天的实现目标就是使用GD库完成对图片加水印和图 片缩略图两个功能 动身前逻辑准备 属性: 路径 功能: 构造方法 生成水印的方法 获取 图片信息 获取位置信息(123 456 789) 创建图片资源 ...
- 【PHP】使用GD库实现 图像生成、缩放、logo水印和简单验证码
gd库是php最常用的图片处理库之一(另外一个是imagemagick),可以生成图片.验证码.水印.缩略图等等.要使用gd库首先需要开启gd库扩展, windows系统下需要在php.ini中将ex ...
- php使用GD库实现图片水印和缩略图——封装成类
学完了如何使用GD库来实现对图片的各种处理,那么我们可以发现,不管哪种方法,都有相似之处,如果我们把这些相似的地方和不相似的地方都封装成类,这样就可以提升代码的速度,而且节省了很多时间,废话不多说,来 ...
- php使用GD库实现图片水印和缩略图——生成图片缩略图
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- php使用GD库实现图片水印和缩略图——给图片添加图片水印
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- php使用GD库实现图片水印和缩略图——给图片添加文字水印
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- PHP 使用gd库压缩图片并生成新图片返回全路径
使用gd库前,先检查是否开启了gd库 phpinfo(); 如果在php配置信息里找到了gd库,那么就是开启了,没开启的自行百度如何开启php gd库 既然开启了gd库,那么直接再php里写入以下代码 ...
随机推荐
- jquery20--animate() : 运动的方法
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- modSecurity规则学习(三)——SecRule
通用格式 SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS] 阶段phase (1)request headers (2) ...
- python-openpyxl安装
今天在安装openpyxl的时候,一直提示错误,后来才发现仅仅安装它还不够,还需要其他两个库的支持1.安装jdcal2.安装et_xmlfile这两个库安装的方法,都是直接在命令行下面,进入库文件se ...
- android 图片特效处理之 图片叠加
这篇将讲到图片特效处理的图片叠加效果.跟前面一样是对像素点进行处理,可参照前面的android图像处理系列之七--图片涂鸦,水印-图片叠加和android图像处理系列之六--给图片添加边框(下)-图片 ...
- sublime 支持 vue 语法
具体步骤如下: 1.如果你没安装Package Control,请先安装,安装方法请自行百度.安装OK后,接下来步骤请参考第2步即可. 2.如果你已经安装过Package Control,安装vue高 ...
- Impala管理
这里, 以后更新. Impala的安装(含使用CM安装 和 手动安装)(图文详解) 可以通过下面的链接来访问Impala的监护管理页面: • 查看StateStore – http://node1:2 ...
- 跟我一起造轮子 手写springmvc
原创地址:https://www.cnblogs.com/xrog/p/9820168.html 作为java程序员,项目中使用到的主流框架多多少少和spring有关联,在面试的过程难免会问一些spr ...
- csdn课堂学习
http://edu.csdn.net/course/detail/2495?ref=blog&loc=0 http://edu.csdn.net/course/detail/2140/336 ...
- ln用法
第一部分: 建立简单的硬连接: ln ./wwy.gif ./wwy_ln (第二个参数为新建的连接文件,建立前不存在),则任意一个文件变化,另一个也变化:大小为一个文件的大小:硬连接只能建在同一个分 ...
- 洛谷——P1843 奶牛晒衣服
https://www.luogu.org/problem/show?pid=1843#sub 题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣 服就成了很不爽的事情. ...