使用 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 将图像大小调整为更高分辨率 [重复]的主要内容,如果未能解决你的问题,请参考以下文章