PHP生成缩略图


<?php
/**
 * Created by PhpStorm.

 */
function watermark($source,$water,$postion=4,$path=''){
    //设置水印图片名称前缀
    $waterPrefix='water_';
    //图片类型和对应创建画布资源的函数名
    $from=array(
        'image/gif'=>'imagecreatefromgif',
        'image/png'=>'imagecreatefrompng',
        'image/jpeg'=>'imagecreatefromjpeg',
    );
    //图片类型和对应生成图片的函数名
    $to=array(
        'image/gif'=>'imagegif',
        'image/png'=>'imagepng',
        'image/jpeg'=>'imagejpeg',
    );
    //获取原图和 水印图片信息数组
    $src_info=getimagesize($source);
    $water_info=getimagesize($water);
    //从数组中获取原图和水印图片的宽和高
    list($src_w,$src_h,$src_mime)=$src_info;
    list($wat_w,$wat_h,$wat_mime)=$water_info;
    //获取各图片对应的创建画布函数名
    $src_create_fname=$from[$src_info['mime']];
    $wat_create_fname=$from[$water_info['mime']];
    //使用可变函数来创建画布资源
    $src_img=$src_create_fname($source);
    $wat_img=$wat_create_fname($water);
    //水印位置
    switch($postion){
        case 1://左上
            $src_x=0;
            $src_y=0;
            break;
        case 2://右上
            $src_x=$src_w-$wat_w;
            $src_y=0;
            break;
        case 3://中间
            $src_x=($src_w-$wat_w)/2;
            $src_y=($src_h-$wat_h)/2;
            break;
        case 4://左下
            $src_x=0;
            $src_y=$src_h-$wat_h;
            break;
        default ://右下
            $src_x=$src_w-$wat_w;
            $src_y=$src_h-$wat_h;
            break;
    }
    //添加水印
    /**
     * @param resource $src_img 原图像资源
     * @param resource $wat_img 水印图像资源
     * @param int $src_x 水印图片在原图像中的横坐标
     * @param int $src_y 水印图片在原图像中的纵坐标
     * @param int $wat_w 水印图片的宽
     * @param int $wat_h 水印图片的高
     */
    imagecopy($src_img,$wat_img,$src_x,$src_y,0,0,$wat_w,$wat_h);
    //生成带水印的图片路径
    $waterfile=$path.$waterPrefix.$source;
    //获取输出图片格式的函数名
    $generate_fname=$to[$src_info['mime']];
    //判断将添加水印后的图片输出到指定目录是否正确
    if($generate_fname($src_img,$waterfile)){
        //有条理地输出原图像与加水印后的图像
        echo "<table><tr><th>为图片添加水印</th></tr>";
        echo "<tr><td>原图像:</td><td><img src='".$source."'/></td></tr>";
        echo "<tr><td>加水印后:</td><td><img src='".$waterfile."'/></td></tr></table>";
    }else{
        echo "输出水印图片到指定目录出错";
        return false;
    }
}
//使用变量保存原图片与水印图片路径
$source='test.jpg';
$water='C:\Users\Administrator\Desktop\2.png';
//调用函数,显示原图与添加水印后的图片
watermark($source,$water);
?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值