使用 PHP 将图像大小调整为更高分辨率 [重复]

Posted

技术标签:

【中文标题】使用 PHP 将图像大小调整为更高分辨率 [重复]【英文标题】:Resize image to a higher resolution with PHP [duplicate] 【发布时间】:2016-01-01 22:08:23 【问题描述】:

我想将图像大小调整为固定分辨率(540x540 或 640x640)。我的源图像尺寸从 320x320 到 720x720 不等。有人可以提供调整这些图像大小的解决方案吗?我正在使用带有 GD 的 php

谢谢。

【问题讨论】:

看php手册中的例子:php.net/manual/en/function.imagecopyresized.php 【参考方案1】:

调整大小.php

<?php

/*
* File: SimpleImage.php
* Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 08/11/06
* Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
* http://www.gnu.org/licenses/gpl.html
*
*/

class SimpleImage 

   var $image;
   var $image_type;

   function load($filename) 

      $image_info = getimagesize($filename);
      $this->image_type = $image_info[2];
      if( $this->image_type == IMAGETYPE_JPEG ) 

         $this->image = imagecreatefromjpeg($filename);
       elseif( $this->image_type == IMAGETYPE_GIF ) 

         $this->image = imagecreatefromgif($filename);
       elseif( $this->image_type == IMAGETYPE_PNG ) 

         $this->image = imagecreatefrompng($filename);
      
   
   function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) 

      if( $image_type == IMAGETYPE_JPEG ) 
         imagejpeg($this->image,$filename,$compression);
       elseif( $image_type == IMAGETYPE_GIF ) 

         imagegif($this->image,$filename);
       elseif( $image_type == IMAGETYPE_PNG ) 

         imagepng($this->image,$filename);
      
      if( $permissions != null) 

         chmod($filename,$permissions);
      
   
   function output($image_type=IMAGETYPE_JPEG) 

      if( $image_type == IMAGETYPE_JPEG ) 
         imagejpeg($this->image);
       elseif( $image_type == IMAGETYPE_GIF ) 

         imagegif($this->image);
       elseif( $image_type == IMAGETYPE_PNG ) 

         imagepng($this->image);
      
   
   function getWidth() 

      return imagesx($this->image);
   
   function getheight() 

      return imagesy($this->image);
   
   function resizeToheight($height) 

      $ratio = $height / $this->getheight();
      $width = $this->getWidth() * $ratio;
      $this->resize($width,$height);
   

   function resizeToWidth($width) 
      $ratio = $width / $this->getWidth();
      $height = $this->getheight() * $ratio;
      $this->resize($width,$height);
   

   function scale($scale) 
      $width = $this->getWidth() * $scale/100;
      $height = $this->getheight() * $scale/100;
      $this->resize($width,$height);
   

   function resize($width,$height) 
      $new_image = imagecreatetruecolor($width, $height);
      imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getheight());
      $this->image = $new_image;
         


?>

输出.php

<?
include ("rezise.php");
$piclocation="images/123.jpg";
$picsavelocation="images/123.jpg";

$image = new SimpleImage();
$image->load(''.$piclocation.'');
$image->resize(188,282);
$image->save(''.$piclocation.'');


header('Content-type: image/jpeg');
echo file_get_contents(''.$picsavelocation.'');
unlink($save_rand_name);
?>

【讨论】:

以上是关于使用 PHP 将图像大小调整为更高分辨率 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

调整大小时Python OpenCV图像打乱[重复]

StretchBlt 收缩损坏

二进制图像大小调整出错

jQuery 上传会以一定的分辨率调整图像大小

根据分辨率自动调整背景图像大小

如何使用 iOS 轻松调整/优化图像大小?