麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 建站經驗 > 正文

PHP實現對png圖像進行縮放的方法(支持透明背景)

2024-04-25 20:39:10
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現對png圖像進行縮放的方法。分享給大家供大家參考。具體實現方法如下:

function smart_resize_image( $file, $width = 0, $height = 0, $proportional = false, $output = 'file', $delete_original = true, $use_linux_commands = false )

{

if ( $height <= 0 && $width <= 0 ) {

return false;

}

$info = getimagesize($file);

$image = '';

$final_width = 0;

$final_height = 0;

list($width_old, $height_old) = $info;

if ($proportional) {

if ($width == 0) $factor = $height/$height_old;

elseif ($height == 0) $factor = $width/$width_old;

else $factor = min ( $width / $width_old, $height / $height_old);

$final_width = round ($width_old * $factor);

$final_height = round ($height_old * $factor);

}

else {

$final_width = ( $width <= 0 ) ? $width_old : $width;

$final_height = ( $height <= 0 ) ? $height_old : $height;

}

switch ($info[2] ) {

case IMAGETYPE_GIF:

$image = imagecreatefromgif($file);

break;

case IMAGETYPE_JPEG:

$image = imagecreatefromjpeg($file);

break;

case IMAGETYPE_PNG:

$image = imagecreatefrompng($file);

break;

default:

return false;

}

$image_resized = imagecreatetruecolor( $final_width, $final_height );

if ( ($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG) ) {

$trnprt_indx = imagecolortransparent($image);

// If we have a specific transparent color

if ($trnprt_indx >= 0) {

// Get the original image's transparent color's RGB values

$trnprt_color = imagecolorsforindex($image, $trnprt_indx);

// Allocate the same color in the new image resource

$trnprt_indx = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);

// Completely fill the background of the new image with allocated color.

imagefill($image_resized, 0, 0, $trnprt_indx);

// Set the background color for new image to transparent

imagecolortransparent($image_resized, $trnprt_indx);

}

// Always make a transparent background color for PNGs that don't have one allocated already

elseif ($info[2] == IMAGETYPE_PNG) {

// Turn off transparency blending (temporarily)

imagealphablending($image_resized, false);

// Create a new transparent color for image

$color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);

// Completely fill the background of the new image with allocated color.

imagefill($image_resized, 0, 0, $color);

// Restore transparency blending

imagesavealpha($image_resized, true);

}

}

imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);

if ( $delete_original ) {

if ( $use_linux_commands )

exec('rm '.$file);

else

@unlink($file);

}

switch ( strtolower($output) ) {

case 'browser':

$mime = image_type_to_mime_type($info[2]);

header("Content-type: $mime");

$output = NULL;

break;

case 'file':

$output = $file;

break;

case 'return':

return $image_resized;

break;

default:

break;

}

switch ($info[2] ) {

case IMAGETYPE_GIF:

imagegif($image_resized, $output);

break;

case IMAGETYPE_JPEG:

imagejpeg($image_resized, $output);

break;

case IMAGETYPE_PNG:

imagepng($image_resized, $output);

break;

default:

return false;

}

return true;

}

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品中文视频 | 精品在线视频观看 | 午夜色视频在线观看 | 国产资源在线观看 | 国色天香综合网 | 羞羞视频入口 | 羞羞视频免费网站日本动漫 | 91久久国产综合久久91精品网站 | 欧美激情精品久久久久久黑人 | 国产一区日韩精品 | 高清做爰免费无遮网站挡 | 日韩中文字幕三区 | 欧美一区二区三区免费观看 | 亚洲国产高清自拍 | 色域tv| 欧美日韩在线视频一区 | 日本成年免费网站 | 欧美一级毛片一级毛片 | 全免费午夜一级毛片真人 | 国产porn在线 | 黄色视频a级毛片 | 欧产日产国产精品乱噜噜 | 日韩 综合| 日本精品久久久一区二区三区 | 未成年人在线观看 | 538在线精品| 九九热精品在线视频 | 国产一级性生活视频 | 国产精品久久久久久久亚洲按摩 | 午夜视频你懂的 | 最新av免费网址 | 欧美视频国产精品 | 四季久久免费一区二区三区四区 | 亚洲午夜免费 | 免费h片网站| 久久www视频| 日本a在线观看 | 香蕉视频1024 | 狠狠婷婷综合久久久久久妖精 | 成年人视频免费 | 天天夜碰日日摸日日澡性色av |