php 图片格式转换-亲测ok

代码如下

/**
 * 图片格式转换
 * @param string $image_path 文件路径或url
 * @param string $to_ext 待转格式,支持png,gif,jpeg,wbmp,webp,xbm
 * @param null|string $save_path 存储路径,null则返回二进制内容,string则返回true|false
 * @return boolean|string $save_path是null则返回二进制内容,是string则返回true|false
 * @throws Exception
 * @author klinson <[email protected]>
 */
function transform_image($image_path, $to_ext = ‘png‘, $save_path = null)
{
    if (! in_array($to_ext, [‘png‘, ‘gif‘, ‘jpeg‘, ‘wbmp‘, ‘webp‘, ‘xbm‘])) {
        throw new \Exception(‘unsupport transform image to ‘ . $to_ext);
    }
    switch (exif_imagetype($image_path)) {
        case IMAGETYPE_GIF :
            $img = imagecreatefromgif($image_path);
            break;
        case IMAGETYPE_JPEG :
        case IMAGETYPE_JPEG2000:
            $img = imagecreatefromjpeg($image_path);
            break;
        case IMAGETYPE_PNG:
            $img = imagecreatefrompng($image_path);
            break;
        case IMAGETYPE_BMP:
        case IMAGETYPE_WBMP:
            $img = imagecreatefromwbmp($image_path);
            break;
        case IMAGETYPE_XBM:
            $img = imagecreatefromxbm($image_path);
            break;
        case IMAGETYPE_WEBP: //(从 PHP 7.1.0 开始支持)
            $img = imagecreatefromwebp($image_path);
            break;
        default :
            throw new \Exception(‘Invalid image type‘);
    }
    $function = ‘image‘.$to_ext;
    if ($save_path) {
        return $function($img, $save_path);
    } else {
        $tmp = __DIR__.‘/‘.uniqid().‘.‘.$to_ext;
        if ($function($img, $tmp)) {
            $content = file_get_contents($tmp);
            unlink($tmp);
            return $content;
        } else {
            unlink($tmp);
            throw new \Exception(‘the file ‘.$tmp.‘ can not write‘);
        }
    }
}

原文地址:https://www.cnblogs.com/pxjbk/p/12060438.html

时间: 2024-10-12 16:04:33

php 图片格式转换-亲测ok的相关文章

bmp,jpg,png,tif,wmf,emf与eps图片格式转换

wmf/emf是两种Microsoft Windows的图形文件格式.它是一个矢量图格式,但是也允许包含位图.本质上,一个WMF文件保存一系列可以用来重建图片的Windows GDI命令.在某种程度上,它类似于印刷业广泛使用的PostScript格式. 关于wmf2eps安装使用的问题可参考如下两个网页. http://www.kellogg.northwestern.edu/rc/miktex-install.htm http://www.wolf-s.homepage.t-online.de

【VC++技术杂谈007】使用GDI+进行图片格式转换

本文主要介绍如何使用GDI+对图片进行格式转换,可以转换的图片格式为bmp.jpg.png. 1.加载GDI+库 GDI+是GDI图形库的一个增强版本,提供了一系列Visual C++ API.为了使用GDI+,需要在工程中包含“GdiPlus.h”头文件,并加载“gdiplus.lib”库文件. 具体实现方法为,下载GDI+库,将下载得到的Gdiplus文件夹放到工程中.Gdiplus文件夹中应当包含有“GdiPlus.h”等一系列头文件.Gdiplus.lib库文件和Gdiplus.dll动

.NET图片操作类,包含图片格式转换、图片缩放、 文字水印、图片水印、路径转换

using System;using System.Collections.Generic;using System.Text;using System.IO;using System.Drawing.Imaging;using System.Drawing;using System.Web;namespace ZC.Utils{  public  static class ImageHelper  { #region 图片格式转换      /// <summary>      /// 图片

老司机图文教程教你如何免费下载腾讯视频的视频mp4(直接下载到,不用qlv格式转mp4格式,亲测)

关于如何下载到腾讯视频的mp4这个问题,大家想必经过多翻搜索,都未必找到满意的答案吧. 下载微信公众号文章中引用的腾讯视频的方法也是一样适用本方法. 因为用腾讯视电脑客户端和手机APP下载到的都是QLV格式,还需要通过软件来转化,但这方面的视频格式转换软件好像不多,甚至没有,甚至收费的软件都不一定有好用的. 还有大多是说用缓存文件合并的方法来完成,这一招也是高难度,操作性不强. 接下来本人介绍一款软件来直接下载到腾讯视频的mp4文件.本人已亲测多次,屡试不爽,隆重介绍给大家. 工具:使用专业下载

怎样将图片格式转换成PDF格式?

电脑中保存的图片转换成PDF格式该如何进行操作呢?下面就这个问题小编就将自己所知道的转换方法告诉大家!1.首先可以将转换成PDF格式的图片保存在一份新建的新文件夹中.2.接下来就可以借助电脑端的PDF转换软件进行操作了.不过前提是电脑中要有PDF转换器,没有的话大家自行去下载.这个就不用小编教大家了吧!3.电脑中打开转换软件,之后就进入到操作的页面了.我们可以移动鼠标选择到左侧的其它文件转换PDF这个栏目,它里面就一个功能叫图片转换PDF的功能,点击选中它.4.接着可以将开始准备的文件夹中的图片

怎样将普通的图片格式转换成PDF格式

大多时候我们处理格式间的转换的对象多数为一些文件,如word.Excel.WPS等几种办公中常所使用到的.试过如何将图片转换成PDF格式了吗?相信大部分的人都不知道如何操作,不妨试一下这种方法,小编将方法分享给大家!操作如下. 1.首先需要我们找到一款能够支持转换文件格式的转换软件,搜索工具的关键词"PDF转换工具",点击软件的官网中进行下载. 2.转换工具下载完成后,在电脑桌面打开它,进入到操作页面.下面操作的是将图片转换成PDF格式,鼠标点击选择到"其他文件转换PDF&q

各种图片格式转换

1.WindowsForm中Image转换为System.Windows.Controls.Image转换 /// <summary>        /// 把DrawingImage转换为Controls使用的Iamge类        /// </summary>        /// <param name="gdiImg"></param>        /// <returns></returns>   

MATLAB 文件对话框之图片格式转换

localpathname为当前路径,需要保存图片的位置,根据自己的实际路径设置,usedpathname用来保存打开的文件位置,方便下次打开文件对话框以上次的路径为默认路径. global usedpathname; global localpathname; localpathname='D:\Program Files\MATLAB\R2013a\bin\毕业设计\图片\';if ~ischar(usedpathname)[filename, pathname, filterindex]

CSS制作图片水平垂直居中 亲测推荐

空白标签实现图片的垂直居中 这种方法很有意思,也很有独特之处,我的思路也是来自于张鑫旭-鑫空间-鑫生活写的<大小不固定的图片.多行文字的水平垂直居中>一文中的使用空白图片实现垂直对齐.他主要使用了一张宽度为1px高度为100%的透明图片,并设置图片“vertical-align:middle”.后来我想了想,此处能不能不使用图片,直接像上面的实例一样,用一个空格的span标签,只是将其“display:inline”设置为“display:inline-block”.因为这两者的核心原理都是一