PHP中改变图片的尺寸大小的代码
前端之家收集整理的这篇文章主要介绍了
PHP中改变图片的尺寸大小的代码,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
先介绍一个自己写的函数。
<div class="codetitle"><a style="CURSOR: pointer" data="51813" class="copybut" id="copybut51813" onclick="doCopy('code51813')"> 代码如下:
<div class="codebody" id="code51813">
<?
PHP $imgsrc = "
http://www.nowamagic.net/images/3.jpg";
$width = 780;
$height = 420;
resizejpg($imgsrc,$imgdst,$width,$height);
function resizejpg($imgsrc,$imgwidth,$imgheight)
{
//$imgsrc jpg格式图像路径 $imgdst jpg格式图像保存
文件名 $imgwidth要改变的宽度 $imgheight要改变的高度
//取得
图片的宽度,高度值
$arr = getimagesize($imgsrc);
header("Content-type: image/jpg");
$imgWidth = $imgwidth;
$imgHeight = $imgheight;
// Create image and define colors
$imgsrc = imagecreatefromjpeg($imgsrc);
$image = imagecreatetruecolor($imgWidth,$imgHeight); //创建一个
彩色的底图
imagecopyresampled($image,$imgsrc,$imgWidth,$imgHeight,$arr[0],$arr[1]);
imagepng($image);
imagedestroy($image);
}
?>
imagecopyresampled
imagecopyresampled -- 重采样拷贝部分图像并调整大小。
int imagecopyresampled ( resource dst_im,resource src_im,int dstX,int dstY,int srcX,int srcY,int dstW,int dstH,int srcW,int srcH)
imagecopyresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。dst_im 和 src_im 分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本
函数可用来在同一幅图内部拷贝(如果 dst_im 和 src_im 相同的话)区域,但如果区域交迭的话则结果不可预知。
注: 因为调色板图像限制(255+1 种颜色)有个问题。重采样或过滤图像通常需要多于 255 种颜色,计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时,如果失败我们选择了计算结果最接近(理论上)的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果,例如空白(或者视觉上是空白)的图像。要跳过这个问题,请使用真
彩色图像作为目标图像,例如用 imagecreatetruecolor() 创建的。
注: imagecopyresampled() 需要 GD 2.0.l 或更高版本。
一个简单的示例:
<div class="codetitle">
<a style="CURSOR: pointer" data="43527" class="copybut" id="copybut43527" onclick="doCopy('code43527')"> 代码如下: