[转载]PHP图形图像的典型应用 –简单图像的应用(水印) – clouds008 – 博客园.
php使用图像要用到GD或GD2库。才行。如果要高级的图形形状,还可以下载JPgraph类库它是完全由php语言写的。当然也是基于GD/GD2库的
1、创建一个简单的图像
<span class="pun"><?</span><span class="pln">php </span><span class="com">/*在图像输出前,不能有html元素输出*/</span><span class="pln"> header</span><span class="pun">(</span><span class="str">"Content-type:image/jpeg"</span><span class="pun">);</span><span class="pln"> </span><span class="com">//这里要设置一下头信息、告诉页面以什么方式呈现。否则直接输出图像会乱码</span><span class="pln"> </span><span class="com">/* ---------------例 12.1 创建一个简单的普通的图像 ---------------- */</span><span class="pln"> $im </span><span class="pun">=</span><span class="pln"> imagecreate</span><span class="pun">(</span><span class="lit">200</span><span class="pun">,</span><span class="lit">60</span><span class="pun">);</span><span class="pln"> </span><span class="com">//创建一个画布</span><span class="pln"> $white </span><span class="pun">=</span><span class="pln"> imagecolorallocate</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">,</span><span class="lit">255</span><span class="pun">,</span><span class="lit">66</span><span class="pun">,</span><span class="lit">159</span><span class="pun">);</span><span class="pln"> imagegif</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">);</span><span class="pln"> </span><span class="pun">?></span> |
2、在照片上添加文字(文字水印)
<span class="pun"><?</span><span class="pln">php </span><span class="com">/* ----------------- 例 12.2 在照片上添加文字。可以是水印 -------------------*/</span><span class="pln"> header</span><span class="pun">(</span><span class="str">"Content-type:image/jpeg"</span><span class="pun">);</span><span class="pln"> </span><span class="com">//这里要设置一下头信息、告诉页面以什么方式呈现。否则直接输</span><span class="pln"> $im </span><span class="pun">=</span><span class="pln"> imagecreatefromjpeg</span><span class="pun">(</span><span class="str">"images/123.jpg"</span><span class="pun">);</span><span class="pln"> </span><span class="com">//载入图片</span><span class="pln"> $textcolor </span><span class="pun">=</span><span class="pln"> imagecolorallocate</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">,</span><span class="lit">56</span><span class="pun">,</span><span class="lit">73</span><span class="pun">,</span><span class="lit">136</span><span class="pun">);</span><span class="pln"> </span><span class="com">//设置字体颜色为蓝色,值为RGB颜色值</span><span class="pln"> $fnt </span><span class="pun">=</span><span class="pln"> </span><span class="str">"c:/windows/fonts/simhei.ttf"</span><span class="pun">;</span><span class="pln"> </span><span class="com">//定义字体</span><span class="pln"> </span><span class="com">/* 这里关于转不转的问题,原理我还没弄明白。但是有一个判断的方法: charset=utf-8, 如果html页面的指定显示编码为utf-8的话,那么中文字就不需要用iconv转。如果是那种 gb2312的编码就必须转utf-8 。因为在php中GD2这个图形库对中文的支持只认识utf-8的编码. */</span><span class="pln"> </span><span class="com">//$motto = iconv("gb2312","utf-8","长白山天池"); //定义输出字体串</span><span class="pln"> $motto </span><span class="pun">=</span><span class="pln"> </span><span class="str">"长白山天池"</span><span class="pun">;</span><span class="pln"> imagettftext</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">,</span><span class="lit">50</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">20</span><span class="pun">,</span><span class="lit">150</span><span class="pun">,</span><span class="pln">$textcolor</span><span class="pun">,</span><span class="pln">$fnt</span><span class="pun">,</span><span class="pln">$motto</span><span class="pun">);</span><span class="pln"> </span><span class="com">//写ttf文字到图形中</span><span class="pln"> imagejpeg</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">);</span><span class="pln"> </span><span class="com">//建立jpeg图形</span><span class="pln"> imagedestroy</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">);</span><span class="pln"> </span><span class="com">//结束图形,释放内存空间</span><span class="pln"> </span><span class="pun">?></span> |
3、图片水印
<span class="pun"><?</span><span class="pln">php </span><span class="com">/* ---------------- 图片水印 ----------- */</span><span class="pln"> header</span><span class="pun">(</span><span class="str">"Content-type:image/jpeg"</span><span class="pun">);</span><span class="pln"> </span><span class="com">//这里要设置一下头信息、告诉页面以什么方式呈现。否则直接输</span><span class="pln"> $im </span><span class="pun">=</span><span class="pln"> imagecreatefromjpeg</span><span class="pun">(</span><span class="str">"images/123.jpg"</span><span class="pun">);</span><span class="pln"> </span><span class="com">//载入背景图</span><span class="pln"> $iml </span><span class="pun">=</span><span class="pln"> imagecreatefromjpeg</span><span class="pun">(</span><span class="str">"images/321.jpg"</span><span class="pun">);</span><span class="pln"> </span><span class="com">//载入背景图</span><span class="pln"> $imarr </span><span class="pun">=</span><span class="pln"> getimagesize</span><span class="pun">(</span><span class="str">"images/321.jpg"</span><span class="pun">);</span><span class="pln"> </span><span class="com">//获取图片的大小类型等信息。具体返回请查阅php帮助手册</span><span class="pln"> imagecopy</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">,</span><span class="pln">$iml</span><span class="pun">,</span><span class="lit">20</span><span class="pun">,</span><span class="lit">150</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="pln">$imarr</span><span class="pun">[</span><span class="lit">0</span><span class="pun">],</span><span class="pln">$imarr</span><span class="pun">[</span><span class="lit">1</span><span class="pun">]);</span><span class="pln"> </span><span class="com">//将一张图片复制到一张图片上,具体请看php手册</span><span class="pln"> imagejpeg</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">);</span><span class="pln"> imagedestroy</span><span class="pun">(</span><span class="pln">$im</span><span class="pun">);</span><span class="pln"> </span><span class="com">//结束图像,释放内存空间</span><span class="pln"> </span><span class="pun">?></span> |