高解像度のサムネイルを作成するためのphpチュートリアルと詳細な使用方法
1. imagecreatetruecolor 関数と imagecopyresampled 関数を使用して、それぞれ imagecreate と imagecopyresize を置き換えます
2. imagejpeg の 3 番目のパラメータに 100 を加算します (例: imagejpeg($ni,$tofile,100))
imagecreatetruecolor -- 新しい True Color イメージを作成します
説明
リソース imagecreatetruecolor (int x_size, int y_size)
imagecreatetruecolor() は、サイズ x_size と y_size の黒い画像を表す画像識別子を返します
*/
header ("content-type: image/png");
$im = @imagecreatetruecolor (50, 100)
さもなければ死ぬ (「新しい gd イメージ ストリームを初期化できません」);
$text_color = imagecolorallocate ($im, 233, 14, 91);
imagestring ($im, 1, 5, 5, "単純なテキスト文字列", $text_color);
imagepng ($im);
画像破壊 ($im);/*
通常の imagecreate() 関数を使用すると画質が乱れます。解決方法をインターネットで検索しました。その方法は、imagecreate() 関数を imagecreatoruecolor() 関数に置き換えることです。
*/
function createpreview($img,$name,$path,$maxwidth,$maxheight,$quality){//画像、保存名、保存パス、最大幅、最大高さ、品質
$widthratio=0;
$heightratio=0;
$width=imagesx($img);
$height=imagesy($img);
//減速比の計算を開始します
if($width>$maxwidth||$height>$maxheight){
if($width>$maxwidth){
$widthratio=$maxwidth/$width;
}
if($height>$maxheight){
$heightratio=$maxheight/$height;
}
if($幅比>0&&$高さ比>0){
if($幅比 $ratio=$widthratio;
}その他{
$ratio=$heightratio;
}
}elseif($widthratio>0){
$ratio=$widthratio;
}elseif($heightratio>0){
$ratio=$heightratio;
}
//取得した比率に基づいてサムネイルの幅と高さを再計算します
$newwidth=$ratio*$width;
$newheight=$ratio*$height;
$newimg=imagecreatetruecolor($newwidth,$newheight) // ターゲット画像を作成します
imagecopyresize($newimg,$img,0,0,0,0,$newwidth,$newheight,$width,$height);
imagejpeg($newimg,$path."s_".$name,$quality);
imagedestroy($newimg);
}その他{
imagejpeg($img,$path."s_".$name,$quality);
}
}
/*
imagecopyresamples() を使用すると、そのピクセル補間アルゴリズムによって取得された画像のエッジはより滑らかで品質が高くなります (ただし、この関数の速度は imagecopyresize() よりも遅くなります)。
http://www.bkjia.com/PHPjc/633003.html