博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP修改图片
阅读量:6681 次
发布时间:2019-06-25

本文共 3567 字,大约阅读时间需要 11 分钟。

这篇是关于修改图片的效果,主要还是用到php中的GD库中的函数,没想到php还有这凶残能力,出乎我的预料。

先看代码upload_image.php,主要是一个上传控件,用来选择图片

                                    
Your username
Upload image*
* Acceptable image formats include: GIF, JPG/JPEG and PNG.
Image Caption

然后是上传和处理图片的逻辑check_image.php

Here is your pic!

Your image has been saved!

Here is your pic!

So how does it feel to be famous?

Here is the picture you just uploaded to your servers:

Image save as:
Height:
Widht:
Upload date:

You may apply a special effect to your image from the list of option below. Note:saving an image with any of the filters applied can be undone

最后是一个预览效果的页面image_effect.php

第二个image_check.php有点乱,在这个页面中有上传图片,处理图片,还有预览图片的部分逻辑,注意下面这段

如果是上传直接访问图片,如果是预览则从image_effect.php中读取图片,这里是从内存中读取图片并根据选择的处理效果来展示图片。如下

switch($effect){    case IMG_FILTER_NEGATE:        imagefilter($image , IMG_FILTER_NEGATE);    break;    case IMG_FILTER_GRAYSCALE:        imagefilter($image , IMG_FILTER_GRAYSCALE);    break;        case IMG_FILTER_EMBOSS:        imagefilter($image , IMG_FILTER_EMBOSS);    break;        case IMG_FILTER_GAUSSIAN_BLUR:        imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR);    break;    }

当使用imagefilter方法处理图片之后会把图片输出到页面,这里要注意imagejpeg方法的第二个参数是空字符串,这样它就不会写入到硬盘中了,如果第二个参数设置了会覆盖原有的图片,这样可以让用户在保存图片之前随意的预览效果,如下:

header('Content-Type:image/jpeg');imagejpeg($image , '' , 100);

在check_image.php中有调用到类似的方法,但是这里指定了第二个参数,就是用来保存图片的:

imagejpeg($image , $dir.'/'.$_POST['id'].'.jpg' , 100);

注意这里哦我们只写了三种处理效果,这个只是所有枚举中的一部分,我们来看所有的处理方式:

IMG_FILTER_NEGATE:将图像中所有颜色反转。

IMG_FILTER_GRAYSCALE:将图像转换为灰度的。
IMG_FILTER_BRIGHTNESS:改变图像的亮度。用 arg1 设定亮度级别。
IMG_FILTER_CONTRAST:改变图像的对比度。用 arg1 设定对比度级别。
IMG_FILTER_COLORIZE:与 IMG_FILTER_GRAYSCALE 类似,不过可以指定颜色。用 arg1,arg2 和 arg3 分别指定 red,blue 和 green。每种颜色范围是 0 到 255。
IMG_FILTER_EDGEDETECT:用边缘检测来突出图像的边缘。
IMG_FILTER_EMBOSS:使图像浮雕化。
IMG_FILTER_GAUSSIAN_BLUR:用高斯算法模糊图像。
IMG_FILTER_SELECTIVE_BLUR:模糊图像。
IMG_FILTER_MEAN_REMOVAL:用平均移除法来达到轮廓效果。
IMG_FILTER_SMOOTH:使图像更柔滑。用 arg1 设定柔滑级别。

是不是很惊艳,php很强大的。

 

转载地址:http://acxao.baihongyu.com/

你可能感兴趣的文章
Mysql数据库实践操作之————批量插入数据(100万级别的数据)
查看>>
我眼中的subprocess
查看>>
Android 一个对sharedpreferences 数据进行加密的开源库
查看>>
手把手教你webpack3(8)url-Loader配置简述
查看>>
再论C++构造函数分类和调用时机以及匿名对象
查看>>
ORACLE expdp导出远程库指定用户数据到本地数据库
查看>>
Oracle10g RAC 单独关闭一个节点(维护)
查看>>
CentOS7怎么保存退出vi编辑
查看>>
上海一日游记
查看>>
ArchLinux上卸载高版本的jdk安装低版本的jdk
查看>>
进程间通信
查看>>
CIO需要消除八个大数据神话
查看>>
分布式系统之CAP理论
查看>>
注释方式汇总
查看>>
突破吞吐限制,多NAS性能聚合方案,数据上传及读写
查看>>
Flume 1.5.0简单部署试用
查看>>
lastlog
查看>>
计算机专业常用英语
查看>>
HBase源码分析之Region上Spilt流程
查看>>
青年之锋——文学之家
查看>>