最新公告
  • 欢迎您光临AEjson资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP 裁剪保留原透明度、原尺寸函数

    PHP 裁剪保留原透明度、原尺寸函数

    /**
     * 重置图片文件大小
     * @param  string filePath 文件路径
     * @param  intxmax     最大宽度
     * @param  int ymax     最大高度
     * @return boolean       true/false
     */
    ResetImageFileSize('C:\Users\Administrator\Desktop\0.46574.png',100,100);
    
    function ResetImageFileSize(filePath, xmax,ymax)
    {
        if(filesize(filePath) == 0) return 'error_file';
        //extension = pathinfo(filePath)['extension'];extension = explode('/',getimagesize(filePath)['mime'])[1];img  = null;
        switch (extension) {
            case 'jpg':
            case 'jpeg':img = imagecreatefromjpeg(filePath);
                break;
            case 'png':img = imagecreatefrompng(filePath);
                break;
            case 'gif':img = imagecreatefromgif(filePath);
                break;
            case 'webp':img = imagecreatefromwebp(filePath);
                break;
        }
    
        if(is_null(img)) return false;
    
        list(x,y)  = getimagesize(filePath);
    
        if(x <= xmax &&y <= ymax){
            return true;
        }
        /*保留原宽高比率*/
        if(x >= y) {newX = (x>xmax) ? xmax :x;
            newY =newX * (y /x);
        }else{
            newY = (y > ymax) ?ymax : y;newX = (x /y) * newY;
        }img2 = imagecreatetruecolor(newX,newY);
        imageantialias(img2,true);//使用抗锯齿
        if(extension == 'png'){
        Color = imagecolorallocatealpha(img2, 0, 0, 0, 127);//设置透明
        }else{
            Color = imagecolorallocate(img2,255,255,255);
        }
        imagecolortransparent(img2,Color);
        imagefill(img2,0,0,Color);
    
        if(function_exists('imagecopyresampled')){
            /*生成图像质量较好,但速度相比较慢*/
            imagecopyresampled(img2,img, 0, 0, 0, 0, floor(newX), floor(newY), x,y);
        }else{
            /*生成图像质量较差,但速度相比较快*/
            imagecopyresized(img2,img, 0, 0, 0, 0, floor(newX), floor(newY), x,y);
        }
    
        switch (extension) {
            case 'jpg':
            case 'jpeg':
                imagejpeg(img2,filePath,100);
                break;
            case 'png':
                imagesavealpha(img2,true);
                imagepng(img2,filePath);
                //imagepng(img2,filePath,9);
                break;
            case 'gif':
                imagegif(img2,filePath);
                break;
            default:
                imagejpeg(img2,filePath,100);
                break;
        }
    
        imagedestroy($img2);
        return true;
    }
    
    AEjson资源网是一个网络资源共享平台,提供最新、最全的程序相关资源下载,内容包含各类一手源码下载,努力打造为网络爱好者提供优质服务的平台
    AEjson资源网 » PHP 裁剪保留原透明度、原尺寸函数

    常见问题FAQ

    免费下载或者皇帝专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    AEjson资源网
    一个高级程序员模板开发平台

    发表评论

    • 22会员总数(位)
    • 43资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 607稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    升级SVIP尊享更多特权立即升级