zoukankan      html  css  js  c++  java
  • PHP学习笔记十、图像处理

    一、图形处理及应用

    二、创建图像

    1、创建画布


    2、绘制图像

    第一次定义的颜色是背景色

    3、输出图像和关闭资源

    三、示例

    1、创建一张图片

    <?php
    //定义当前页面是一张jpg格式的图片
    header('Content-type:image/jpeg');
    //创建画布
    $img=imagecreate(300, 300);
    //定义颜色(第一个颜色是背景色)
    $blue=imagecolorallocate($img, 0, 0, 255);
    //输出图片
    imagejpeg($img);
    //注销资源
    imagedestroy($img);
    ?>
    

    2、在图片上画点:imagesetpixel

    //在图片上画点
    $co=imagecolorallocate($img,0,0,0);
    imagesetpixel($img, rand(0,300), rand(0,300), $co);
    

    3、在图片上画线:imageline

    //在图片上画线
    $lco=imagecolorallocate($img,0,0,0);
    imageline($img, 0, 0, 300, 300, $lco);
    

    4、在图片上写文字(只能写英文):imagestring

    //在图片上写文字
    imagestring($img, 5, 0, 0, "jfliu", $lco);	
    

    5、在图片上写文字(支持中文,最常用):imagettftext

    //写汉字
    imagettftext($img, 20, 0, 150, 150, $lco, './msyh.ttc', '中国汉字');
    

    6、完整示例

    <?php
    //定义当前页面是一张jpg格式的图片
    header('Content-type:image/jpeg');
    //创建画布
    $img=imagecreate(300, 300);
    //定义颜色(第一个颜色是背景色)
    $blue=imagecolorallocate($img, 0, 0, 255);
    //在图片上画点
    $co=imagecolorallocate($img,0,0,0);
    imagesetpixel($img, rand(0,300), rand(0,300), $co);
    //在图片上画线
    $lco=imagecolorallocate($img,0,0,0);
    imageline($img, 0, 0, 300, 300, $lco);
    //在图片上写文字(只能写英文)
    imagestring($img, 5, 0, 0, "jfliu", $lco);
    //写汉字
    imagettftext($img, 20, 0, 150, 150, $lco, './msyh.ttc', '中国汉字');
    //输出图片
    imagejpeg($img);
    //注销资源
    imagedestroy($img);
    ?>
    

    四、创建缩略图

    等比缩略

    <?php
    header('Content-type:image/jpeg');
    $img2=imagecreatefromjpeg('./meinv.jpg');
    //缩放大小(等比缩略)
    $x=imagesx($img2);
    $y=imagesy($img2);
    $blx=$x/300;
    $bly=$y/300;
    $bl=$blx>$bly?$blx:$bly;
    //创建画布
    $img=imagecreatetruecolor($x/$bl, $y/$bl);
    //缩略图
    imagecopyresized($img, $img2, 0, 0, 0, 0, $x/$bl, $y/$bl, $x, $y);
    //将图片保存起来
    imagejpeg($img,'./suolue.jpg');
    //注销资源
    imagedestroy($img);
    imagedestroy($img2);
    ?>
    

    五、打水印

    <?php
    header('Content-type:image/jpeg');
    $img=imagecreatefromjpeg('./bg.jpg');
    $img2=imagecreatefrompng('./logo.png');
    $x=imagesx($img);
    $y=imagesy($img);
    $x2=imagesx($img2);
    $y2=imagesy($img2);
    imagecopy($img, $img2, $x-$x2, $y-$y2, 0, 0, $x2, $y2);
    //输出图片
    imagejpeg($img,'./shuiyin.jpg');
    //注销资源
    imagedestroy($img);
    imagedestroy($img2);
    ?>

    作者:liujf
    出处:http://www.cnblogs.com/liujf5566/
    本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利~

  • 相关阅读:
    go 正则表达式
    go 发送邮件
    beego 定时任务
    go 字符串操作
    BARTScore试试
    《A method for detecting text of arbitrary shapes in natural scenes that improves text spotting》笔记
    CPM-2
    Foxmail配置qq邮箱
    声音克隆MockingBird
    多模态摘要综述
  • 原文地址:https://www.cnblogs.com/liujf5566/p/5158226.html
Copyright © 2011-2022 走看看