ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで画像サイズを変更するコード

PHP_PHP チュートリアルで画像サイズを変更するコード

WBOY
WBOYオリジナル
2016-07-21 15:26:061014ブラウズ

まずは私が書いた関数を紹介します。

コードをコピーします コードは次のとおりです:

$imgsrc = "http://www.nowmagic.net/images/3.jpg";
$width = 780;
$height = 420;
resizejpg($imgsrc,$imgdst,$width,$height);
関数resizejpg($imgsrc,$imgdst,$imgwidth,$imgheight)
{
//$imgsrc jpg形式の画像パス $ imgdst jpg 形式画像 ファイル名を保存 $imgwidth 変更する幅 $imgheight 変更する高さ
//画像の幅と高さの値を取得
$arr = getimagesize($imgsrc)
header("Content- type: image/jpg");
$imgWidth = $imgwidth;
$imgHeight = $imgheight;
// 画像を作成して色を定義
$imgsrc = imagecreatefromjpeg($imgsrc);
$image = imagecreatetruecolor($imgWidth, $ imgHeight); // カラーベース画像を作成します
imagecopyresampled($image, $imgsrc, 0, 0, 0, 0,$imgWidth,$imgHeight,$arr[0], $arr[1]); 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 以降が必要です。
簡単な例:



コードをコピーします
コードは次のとおりです: // ファイル
$filename = 'test.jpg';
$percent = 0.5; / コンテンツタイプ
header('Content-Type: image/jpeg');
// 新しいサイズを取得
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent; $new_height = $height * $percent;
// リサンプル
$image_p = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($image_p, $image, 0, 0, 0); , 0, $new_width, $new_height, $width, $height);
// 出力
imagejpeg($image_p, null, 100);


例 2:



コードは次のとおりです:
// ファイル
$filename = 'test.jpg';
$width = 200; $height = 200; / コンテンツタイプ header( 'Content-Type: image/jpeg'); // 新しい寸法を取得 list($width_orig, $height_orig) = getimagesize($filename)
$ratio_orig = $width_orig/$height_orig; if ($width/$ height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
// リサンプル
$image_p = imagecreatetruecolor($ width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, null, 100);
?>


画像のサイズを変更するには 2 つの方法があります:
ImageCopyResize() 関数はすべての GD バージョンで有効ですが、画像のスケーリングのアルゴリズムは荒いです。
ImageCopyResamples() のピクセル補間アルゴリズムによって取得された画像のエッジは比較的滑らかです。 (ただし、この関数は ImageCopyResize() よりも遅くなります)。
2 つの関数のパラメータは次のように同じです:



コードをコピーします

コードは次のとおりです:


imageCopyResampled(dest,src,dy,dx,sx,sy,dw,dh, sw,sh);
imageCopyResize(dest,src,dy,dx,sx,sy,dw,dh,sw,sh);
例:
コードをコピーします コードは次のとおりです:

$src = ImageCreateFromJPEG('php.jpg');
$width = ImageSx($src);高さ = ImageSy($src);
$x = $width/2;
$dst = ImageCreateTrueColor($dst,$src,0, 0,0, 0,$x,$y,$width,$height);
ImagePNG($det);



php で jpg を変更します 画像ファイルのサイズ


コードをコピーします
コードは次のとおりです:
< function raise_jpg($img,$w,$h){ // $サム = imagecreate ($w, $h );
$image = imagecreatefromjpeg($img);
if ($h = "auto") $h = $w/($imagedata) [0]/$imagedata[1] );//元の画像のアスペクト比に基づいて高さを取得します。
$thumb = imagecreatetruecolor ($w, $h);
imagecopyresize ($thumb, $image, 0, 0, 0, 0, $w, $h, $imagedata[0],
); imagejpeg($thumb);
//resize_jpg("images/dsc01244.jpg",100,100); ;
?>


関数コード:



コードをコピーします:


/*
* 画像サムネイル
* $srcfile ソース画像、
* $rateスケーリング率、デフォルトでは半分、または特定の幅ピクセル値に縮小されます
* $filename 出力画像ファイル名 jpg * 例:resizeimage("zt32.gif",0.1) * 例:resizeimage( "zt32.gif",250 ) ; * 注: 呼び出すときは、HTML ファイルの IMG タグ内の SRC 属性に関数の結果を直接入れます */
function raiseimage($srcfile,$rate=.5) , $filename = "" ){
$size= getimagesize($srcfile);
switch($size[2]){
ケース 1:
$img=imagecreatefromgif($srcfile);
ケース 2:
$img=imagecreatefromjpeg($srcfile);
break;
$img=imagecreatefrompng($srcfile);
デフォルト:
}
//ソース画像の幅と高さ
srcw=imagesx($img);
$srch=imagesy( $img);
//宛先画像の幅と高さ
if($size[0] $dstw=$srcw;
$dsth =$srch;
}else{
if($rate $dstw=floor($srcw*$rate); dsth=floor($srch*$rate);
$dstw=$rate;
$dsth=floor($srch*$rate); //echo "$dstw,$dsth,$srcw,$srch " ;
//新しい True Color イメージを作成します
$im=imagecreatetruecolor($dstw,$dsth)
$black=imagecolorallocate($im,255,255,255); ;
imagefilledrectangle($im,0,0,$dstw,$dsth, $black);
imagecopyresize($im,$img,0,0,0,0,$dstw,$dsth,$srcw,$srch) ;
// 画像をブラウザまたは JPEG 形式でファイルに出力します
if ( $filename ) {
// 画像を保存して出力します
imagejpeg($im, $filename)
}else {
//ブラウザへの画像
imagejpeg($im);
//画像を解放
imagedestroy($img);

;



http://www.bkjia.com/PHPjc/324010.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/324010.html

技術記事

まずは私が書いた関数を紹介します。 次のようにコードをコピーします: ?php $imgsrc = "http://www.nowmagic.net/images/3.jpg"; $width = 780; $height = 420; Resizejpg($imgsrc,$imgdst,$width. .





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。