[转载]PHP图形图像的典型应用 --简单图像的应用(水印) - clouds008 - 博客园

[转载]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>
赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册