做程序的开发,必然会遇到处理图片上传的问题,图片上传的功能其实很简单了,这里我要说的是GD库的使用。其实,GD库也没有我们想的那么复杂。只不过是他的函数的名字特别长,特别的多。但其实无非都是创建个资源先,先创建画布,有专门的画线、画点、画块。的函数,特殊的还可以画文字,你给他文字,和字体样式,给他位置,他自动去画,还可以画图像,将一个图片画到一个画布中。这样基本就已经可以满足我们大部分对图片处理的需要了。但是还有一个比较重要的功能,也是我们用到的最多的功能,就是截取。

所谓的截取的原理是什么,其实也是一样的道理,就是如果有一张图片是100×100,而我们想要截取一个50×50的图像,那就是先创建一个50×50的画布,然后定准图片开始截取的坐标,和结束的坐标。我们都应该知道,在程序中,图片是用坐标像素来确定的。图片左上角是(0,0)位置。右下角是其(width,height)位置。这也是和我们普通的学习的坐标的一点点区别。知道了规则就方便了,同样的图像的缩放也都是一样的道理,只是一些镂空的设计有些麻烦,因为我们知道,有些logo事需要透明设置的,通过程序的上传缩放后有肯能会将透明变为一些默认的颜色。这些以后在讲,现在就说说截取。我们以截取截取以像素用于平铺为例来讲。

首先,我们先要想一下,平铺的方式有几种,有人说两种,水平和竖直。但其实不然。如果一个图片的上下左右各不相同,那么向上平铺和向下平铺所用的图片就是不一样的,同样,向左和向右平铺的图片也是不一样的了。所以平铺的方式目前来说至少有四种。即上下左右,他们大体上的实现原理是一样的,只是其宽高和起止不同而已、但也就是这简单的不同就可能需要我们好好的研究。我们先以最常用的向右平铺为例来讲解。

这个是代码实现。我们以一个图片文件为例,当然这个图片可以是你刚刚上传后的,给他路径就可以了。

 

图片的操作还是挺浪费系统资源的,所以要做好资源的回收。Png,gif的图片也是一样的道理。其他方向的截取也是同理。不过也需要好好考虑。

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/120/?replytocom=976

目前有1 条留言

  1. 2013年03月26日 下午 9:45 billy   |  引用  |  #1     

    感谢分享!

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter