• 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/
    本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利~

  • 相关阅读:
    本地安装了flash,前台浏览器还显示需要安装flash?是因为版本需要对应
    关于jsp:include 动态引入的值传递问题(数据共享问题)
    java异常
    理解定义类
    泛型
    SSM配置
    markdown基本语法
    xadmin下设置“use_bootswatch = True”无效的解决办法
    django.db.utils.DataError: (1406, "Data too long for column 'gender' at row 1")
    【转】pycharm使用中的一些快捷键
  • 原文地址:https://www.cnblogs.com/liujf5566/p/5158226.html
Copyright © 2020-2023  润新知