Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie ein PHP-JPG-Bild in ein PNG-Bild

So konvertieren Sie ein PHP-JPG-Bild in ein PNG-Bild

藏色散人
藏色散人Original
2021-07-19 10:51:522985Durchsuche

So konvertieren Sie ein PHP-JPG in ein PNG-Bild: Installieren Sie zuerst die PHP-Erweiterungen gd und exif und konvertieren Sie dann mit der Methode „function transform_image($image_path, $to_ext = 'png'...){...}“.

So konvertieren Sie ein PHP-JPG-Bild in ein PNG-Bild

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

PHP realisiert einfach die Bildformatkonvertierung (JPG in PNG, GIF in PNG usw.)

Anforderungen

Entwicklung Während des Prozesses werden Sie immer wieder auf Anforderungen stoßen, die eine Konvertierung von Bildformaten erfordern. Zum Beispiel GIF zu PNG, JPG zu PNG

Wenn Sie kürzlich die Bilddateierkennung einer bestimmten Plattform verwendet haben und diese das GIF-Format nicht unterstützt, müssen Sie das GIF in PNG usw. verarbeiten.

Abhängig von

php-Erweiterung gd und exif

Implementierung

/**
 * 图片格式转换
 * @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 <klinson@163.com>
 */
function transform_image($image_path, $to_ext = &#39;png&#39;, $save_path = null)
{
  if (! in_array($to_ext, [&#39;png&#39;, &#39;gif&#39;, &#39;jpeg&#39;, &#39;wbmp&#39;, &#39;webp&#39;, &#39;xbm&#39;])) {
    throw new \Exception(&#39;unsupport transform image to &#39; . $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(&#39;Invalid image type&#39;);
  }
  $function = &#39;image&#39;.$to_ext;
  if ($save_path) {
    return $function($img, $save_path);
  } else {
    $tmp = __DIR__.&#39;/&#39;.uniqid().&#39;.&#39;.$to_ext;
    if ($function($img, $tmp)) {
      $content = file_get_contents($tmp);
      unlink($tmp);
      return $content;
    } else {
      unlink($tmp);
      throw new \Exception(&#39;the file &#39;.$tmp.&#39; can not write&#39;);
    }
  }
}

Verwenden

// 转换后保存在test.png
transform_image($url, &#39;png&#39;, &#39;./test.png&#39;);
transform_image($filepath, &#39;png&#39;, &#39;./test.png&#39;);
// 转换后二进制结果直接返回
transform_image($url, &#39;png&#39;);
transform_image($filepath, &#39;png&#39;);

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein PHP-JPG-Bild in ein PNG-Bild. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn