php图像处理函数大全(缩放、剪裁、缩放、翻转、旋转、透明、锐化的实例总结)_PHP教程
一、创建图片资源
imagecreatetruecolor(width,height);
imagecreatefromgif(图片名称);
imagecreatefrompng(图片名称);
imagecreatefromjpeg(图片名称);画出各种图像 imagegif(图片资源,保存路径);
imagepng()
imagejpeg();
二、获取图片属性
imagesx(res//宽度
imagesy(res//高度
getimagesize(文件路径)
返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG 标记。
销毁图像资源
imagedestroy(图片资源);
三、透明处理
PNG、jpeg透明色都正常,只有gif不正常
imagecolortransparent(resource image [,int color])//将某个颜色设置成透明色
imagecolorstotal()
imagecolorforindex();
四、图片的裁剪
imagecopyresized()
imagecopyresampled();
五、加水印(文字、图片)
字符串编码转换string iconv ( string $in_charset , string $out_charset , string $str )
六、图片旋转
imagerotate();//制定角度的图片翻转
七、图片的翻转
沿X轴 沿Y轴翻转
八、锐化
imagecolorsforindex()
imagecolorat()
在图片上画图形 $img=imagecreatefromgif("./images/map.gif");
<span 1</span> <?<span PHP </span><span 2</span> <span /*</span><span * </span><span 3</span> <span * 图片锐化处理 </span><span 4</span> <span * edit by www.jbxue.com </span><span 5</span> <span */</span> <span 6</span> <span $red</span>= imagecolorallocate(<span $img</span>, 255, 0, 0<span ); </span><span 7</span> <span 8</span> imageline(<span $img</span>, 0, 0, 100, 100, <span $red</span><span ); </span><span 9</span> imageellipse(<span $img</span>, 200, 100, 100, 100, <span $red</span><span ); </span><span 10</span> imagegif(<span $img</span>, "./images/map2.gif"<span ); </span><span 11</span> imagedestroy(<span $img</span><span ); </span><span 12</span> <span 图片普通缩放 </span><span 13</span> 复制代码 代码如下: <span 14</span> <span 15</span> <span $filename</span>="./images/hee.jpg"<span ; </span><span 16</span> <span $per</span>=0.3<span ; </span><span 17</span> <span list</span>(<span $width</span>, <span $height</span>)=<span getimagesize</span>(<span $filename</span><span ); </span><span 18</span> <span $n_w</span>=<span $width</span>*<span $per</span><span ; </span><span 19</span> <span $n_h</span>=<span $width</span>*<span $per</span><span ; </span><span 20</span> <span $new</span>=imagecreatetruecolor(<span $n_w</span>, <span $n_h</span><span ); </span><span 21</span> <span $img</span>=imagecreatefromjpeg(<span $filename</span><span ); </span><span 22</span> <span //</span><span 拷贝部分图像并调整</span> <span 23</span> imagecopyresized(<span $new</span>, <span $img</span>,0, 0,0, 0,<span $n_w</span>, <span $n_h</span>, <span $width</span>, <span $height</span><span ); </span><span 24</span> <span //</span><span 图像输出新图片、另存为</span> <span 25</span> imagejpeg(<span $new</span>, "./images/hee2.jpg"<span ); </span><span 26</span> imagedestroy(<span $new</span><span ); </span><span 27</span> imagedestroy(<span $img</span><span ); </span><span 28</span> <span 29</span> <span 图片等比例缩放、没处理透明色 </span><span 30</span> 复制代码 代码如下: <span 31</span> <span 32</span> <span function</span> thumn(<span $background</span>, <span $width</span>, <span $height</span>, <span $newfile</span><span ) { </span><span 33</span> <span list</span>(<span $s_w</span>, <span $s_h</span>)=<span getimagesize</span>(<span $background</span>);<span //</span><span 获取原图片高度、宽度</span> <span 34</span> <span if</span> (<span $width</span> && (<span $s_w</span> < <span $s_h</span><span )) { </span><span 35</span> <span $width</span> = (<span $height</span> / <span $s_h</span>) * <span $s_w</span><span ; </span><span 36</span> } <span else</span><span { </span><span 37</span> <span $height</span> = (<span $width</span> / <span $s_w</span>) * <span $s_h</span><span ; </span><span 38</span> <span } </span><span 39</span> <span $new</span>=imagecreatetruecolor(<span $width</span>, <span $height</span><span ); </span><span 40</span> <span $img</span>=imagecreatefromjpeg(<span $background</span><span ); </span><span 41</span> imagecopyresampled(<span $new</span>, <span $img</span>, 0, 0, 0, 0, <span $width</span>, <span $height</span>, <span $s_w</span>, <span $s_h</span><span ); </span><span 42</span> imagejpeg(<span $new</span>, <span $newfile</span><span ); </span><span 43</span> imagedestroy(<span $new</span><span ); </span><span 44</span> imagedestroy(<span $img</span><span ); </span><span 45</span> <span } </span><span 46</span> thumn("images/hee.jpg", 200, 200, "./images/hee3.jpg"<span ); </span><span 47</span> <span 48</span> <span gif透明色处理 </span><span 49</span> 复制代码 代码如下: <span 50</span> <span 51</span> <span function</span> thumn(<span $background</span>, <span $width</span>, <span $height</span>, <span $newfile</span><span ) { </span><span 52</span> <span list</span>(<span $s_w</span>, <span $s_h</span>)=<span getimagesize</span>(<span $background</span><span ); </span><span 53</span> <span if</span> (<span $width</span> && (<span $s_w</span> < <span $s_h</span><span )) { </span><span 54</span> <span $width</span> = (<span $height</span> / <span $s_h</span>) * <span $s_w</span><span ; </span><span 55</span> } <span else</span><span { </span><span 56</span> <span $height</span> = (<span $width</span> / <span $s_w</span>) * <span $s_h</span><span ; </span><span 57</span> <span } </span><span 58</span> <span $new</span>=imagecreatetruecolor(<span $width</span>, <span $height</span><span ); </span><span 59</span> <span $img</span>=imagecreatefromgif(<span $background</span><span ); </span><span 60</span> <span $otsc</span>=imagecolortransparent(<span $img</span><span ); </span><span 61</span> <span if</span>(<span $otsc</span> >=0 && <span $otst</span> < imagecolorstotal(<span $img</span>)){<span //</span><span 判断索引色</span> <span 62</span> <span $tran</span>=imagecolorsforindex(<span $img</span>, <span $otsc</span>);<span //</span><span 索引颜色值</span> <span 63</span> <span $newt</span>=imagecolorallocate(<span $new</span>, <span $tran</span>["red"], <span $tran</span>["green"], <span $tran</span>["blue"<span ]); </span><span 64</span> imagefill(<span $new</span>, 0, 0, <span $newt</span><span ); </span><span 65</span> imagecolortransparent(<span $new</span>, <span $newt</span><span ); </span><span 66</span> <span } </span><span 67</span> imagecopyresized(<span $new</span>, <span $img</span>, 0, 0, 0, 0, <span $width</span>, <span $height</span>, <span $s_w</span>, <span $s_h</span><span ); </span><span 68</span> imagegif(<span $new</span>, <span $newfile</span><span ); </span><span 69</span> imagedestroy(<span $new</span><span ); </span><span 70</span> imagedestroy(<span $img</span><span ); </span><span 71</span> <span } </span><span 72</span> thumn("images/map.gif", 200, 200, "./images/map3.gif");
<?<span php </span><span /*</span><span * * 图片裁剪处理 * edit by www.jbxue.com </span><span */</span> <span function</span> cut(<span $background</span>, <span $cut_x</span>, <span $cut_y</span>, <span $cut_width</span>, <span $cut_height</span>, <span $location</span><span ){ </span><span $back</span>=imagecreatefromjpeg(<span $background</span><span ); </span><span $new</span>=imagecreatetruecolor(<span $cut_width</span>, <span $cut_height</span><span ); imagecopyresampled(</span><span $new</span>, <span $back</span>, 0, 0, <span $cut_x</span>, <span $cut_y</span>, <span $cut_width</span>, <span $cut_height</span>,<span $cut_width</span>,<span $cut_height</span><span ); imagejpeg(</span><span $new</span>, <span $location</span><span ); imagedestroy(</span><span $new</span><span ); imagedestroy(</span><span $back</span><span ); } cut(</span>"./images/hee.jpg", 440, 140, 117, 112, "./images/hee5.jpg"<span ); </span>?>
文字水印
<span 1</span> <?<span PHP </span><span 2</span> <span /*</span><span * </span><span 3</span> <span * </span><span 4</span> <span * 图片添加文字水印 </span><span 5</span> <span */</span> <span 6</span> <span 7</span> <span function</span> mark_text(<span $background</span>, <span $text</span>, <span $x</span>, <span $y</span><span ){ </span><span 8</span> <span $back</span>=imagecreatefromjpeg(<span $background</span><span ); </span><span 9</span> <span $color</span>=imagecolorallocate(<span $back</span>, 0, 255, 0<span ); </span><span 10</span> imagettftext(<span $back</span>, 20, 0, <span $x</span>, <span $y</span>, <span $color</span>, "simkai.ttf", <span $text</span><span ); </span><span 11</span> imagejpeg(<span $back</span>, "./images/hee7.jpg"<span ); </span><span 12</span> imagedestroy(<span $back</span><span ); </span><span 13</span> <span } </span><span 14</span> mark_text("./images/hee.jpg", "细说PHP", 150, 250<span ); </span><span 15</span> <span //</span><span 图片水印</span> <span 16</span> <span function</span> mark_pic(<span $background</span>, <span $waterpic</span>, <span $x</span>, <span $y</span><span ){ </span><span 17</span> <span $back</span>=imagecreatefromjpeg(<span $background</span><span ); </span><span 18</span> <span $water</span>=imagecreatefromgif(<span $waterpic</span><span ); </span><span 19</span> <span $w_w</span>=imagesx(<span $water</span><span ); </span><span 20</span> <span $w_h</span>=imagesy(<span $water</span><span ); </span><span 21</span> imagecopy(<span $back</span>, <span $water</span>, <span $x</span>, <span $y</span>, 0, 0, <span $w_w</span>, <span $w_h</span><span ); </span><span 22</span> imagejpeg(<span $back</span>,"./images/hee8.jpg"<span ); </span><span 23</span> imagedestroy(<span $back</span><span ); </span><span 24</span> imagedestroy(<span $water</span><span ); </span><span 25</span> <span } </span><span 26</span> mark_pic("./images/hee.jpg", "./images/gaolf.gif", 50, 200);
图片旋转
<span 1</span> <?<span PHP </span><span 2</span> <span /*</span><span * </span><span 3</span> <span * 图片旋转 </span><span 4</span> <span * edit by www.jbxue.com </span><span 5</span> <span */</span> <span 6</span> <span $back</span>=imagecreatefromjpeg("./images/hee.jpg"<span ); </span><span 7</span> <span 8</span> <span $new</span>=imagerotate(<span $back</span>, 45, 0<span ); </span><span 9</span> imagejpeg(<span $new</span>, "./images/hee9.jpg"<span ); </span><span 10</span> ?>
<span 1</span> <?<span php </span><span 2</span> <span /*</span><span * </span><span 3</span> <span * 图片水平翻转 垂直翻转 </span><span 4</span> <span * edit by www.jbxue.com </span><span 5</span> <span */</span> <span 6</span> <span function</span> turn_y(<span $background</span>, <span $newfile</span><span ){ </span><span 7</span> <span 8</span> <span $back</span>=imagecreatefromjpeg(<span $background</span><span ); </span><span 9</span> <span $width</span>=imagesx(<span $back</span><span ); </span><span 10</span> <span $height</span>=imagesy(<span $back</span><span ); </span><span 11</span> <span $new</span>=imagecreatetruecolor(<span $width</span>, <span $height</span><span ); </span><span 12</span> <span for</span>(<span $x</span>=0; <span $x</span> < <span $width</span>; <span $x</span>++<span ){ </span><span 13</span> imagecopy(<span $new</span>, <span $back</span>, <span $width</span>-<span $x</span>-1, 0, <span $x</span>, 0, 1, <span $height</span><span ); </span><span 14</span> <span } </span><span 15</span> imagejpeg(<span $new</span>, <span $newfile</span><span ); </span><span 16</span> imagedestroy(<span $back</span><span ); </span><span 17</span> imagedestroy(<span $new</span><span ); </span><span 18</span> <span } </span><span 19</span> <span function</span> turn_x(<span $background</span>, <span $newfile</span><span ){ </span><span 20</span> <span $back</span>=imagecreatefromjpeg(<span $background</span><span ); </span><span 21</span> <span $width</span>=imagesx(<span $back</span><span ); </span><span 22</span> <span $height</span>=imagesy(<span $back</span><span ); </span><span 23</span> <span $new</span>=imagecreatetruecolor(<span $width</span>, <span $height</span><span ); </span><span 24</span> <span for</span>(<span $y</span>=0; <span $y</span> < <span $height</span>; <span $y</span>++<span ){ </span><span 25</span> imagecopy(<span $new</span>, <span $back</span>,0, <span $height</span>-<span $y</span>-1, 0, <span $y</span>, <span $width</span>, 1<span ); </span><span 26</span> <span } </span><span 27</span> imagejpeg(<span $new</span>, <span $newfile</span><span ); </span><span 28</span> imagedestroy(<span $back</span><span ); </span><span 29</span> imagedestroy(<span $new</span><span ); </span><span 30</span> <span } </span><span 31</span> turn_y("./images/hee.jpg", "./images/hee11.jpg"<span ); </span><span 32</span> turn_x("./images/hee.jpg", "./images/hee12.jpg"<span ); </span><span 33</span> ?>

使用数据库存储会话的主要优势包括持久性、可扩展性和安全性。1.持久性:即使服务器重启,会话数据也能保持不变。2.可扩展性:适用于分布式系统,确保会话数据在多服务器间同步。3.安全性:数据库提供加密存储,保护敏感信息。

在PHP中实现自定义会话处理可以通过实现SessionHandlerInterface接口来完成。具体步骤包括:1)创建实现SessionHandlerInterface的类,如CustomSessionHandler;2)重写接口中的方法(如open,close,read,write,destroy,gc)来定义会话数据的生命周期和存储方式;3)在PHP脚本中注册自定义会话处理器并启动会话。这样可以将数据存储在MySQL、Redis等介质中,提升性能、安全性和可扩展性。

SessionID是网络应用程序中用来跟踪用户会话状态的机制。1.它是一个随机生成的字符串,用于在用户与服务器之间的多次交互中保持用户的身份信息。2.服务器生成并通过cookie或URL参数发送给客户端,帮助在用户的多次请求中识别和关联这些请求。3.生成通常使用随机算法保证唯一性和不可预测性。4.在实际开发中,可以使用内存数据库如Redis来存储session数据,提升性能和安全性。

在无状态环境如API中管理会话可以通过使用JWT或cookies来实现。1.JWT适合无状态和可扩展性,但大数据时体积大。2.Cookies更传统且易实现,但需谨慎配置以确保安全性。

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)