ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルを使用して画像鮮明化コードを実装する
//読み込む画像の種類
//1 = GIF、2 = JPG、3 = PNG、4 = SWF、5 = PSD、6 = BMP、7 = TIFF (インテル バイト オーダー)、8 = TIFF(motorola byte order)、9 = JPC、10 = JP2、11 = JPX、12 = JB2、13 = SWC、14 = IFF
function GetImageType($filename) {return (($imginfo=@getimagesize($ filename) ))!=null ? $imginfo[2] : null);}
//画像の鮮鋭化
//$scr_im: 画像リソースハンドル, $degree: 鮮鋭化の度合い
関数 Sharp(&$src_im, &$ dst_im, $degree)
$src_x = imagex($src_im)
$src_y = imagey($src_im)
//$dst_im = imagecreate($src_x , $src_y); imagecopy($dst_im, $src_im, 0, 0, 0, 0, $src_x, $src_y);
$cnt = 0;
for ($x<$src_x; $x++)
for ($y=1; $y<$src_y; $y++)
$src_clr2 = imagecolorsforindex($src_im, imagecolorat($src_im, $x, $y))
$r = intval($src_clr2[ "赤"]+$度*($src_clr2["赤"]-$src_clr1 ["赤"]));
$g = intval($src_clr2["緑"]+$度*($src_clr2["緑"]-$src_clr1["緑"]));
$b = intval($src_clr2["青"]+$degree*($src_clr2["青"]-$src_clr1["青"])) ;
$r = min(255, max($r, 0));
$g = min(255, max($g, 0)); , 0));
//echo "r:$r, g:$ g, b:$b
"; if (($dst_clr=imagecolorexact($dst_im, $r, $g) , $b))==-1)
$dst_clr = Imagecolorallocate($dst_im , $r, $g, $b);
$cnt++; if ($dst_clr==-1) die("color assign failed at $x, $y ($cnt).");
imagesetpixel ($dst_im, $x, $y, $dst_clr);
}
return $dst_im;
}
$ImageFunctions = array("imagecreatefromwbmp", "imagecreatefromgif ", "imagecreatefromjpeg", "imagecreatefrompng");
if (!empty($_POST["ImageName"]))
set_time_limit(10*60); (($ImageType=GetImageType($_POST["ImageName"]))==false )
die("指定されたファイルは存在しないか、有効な画像ではないか、またはその種類をサポートしていません。 ");
if ($ImageType==6) $ImageType = 0;
if ($ImageType>3) die("サポートされていない画像タイプです!");
$im1 = $ImageFunctions[$ImageType]($_POST["ImageName"]);
$im2 = $ImageFunctions[$ImageType]($_POST["ImageName"]);
//print_r (imagecolorsforindex($im, imagecolorat($im, 10, 10)));
Sharp($im1, $im2, $_POST["Degree"]);
header("Content-type: image/png") );
imagedestroy($im1);
} name="FormName" action="" method= "post"> を入力してください。画像のローカル パスまたは URL:
" ;
研磨度 (例: 0.6、3.0):
="=$_POST["Degree"]?>">
0; $x--)
($y=)画像sy($im)-1; $y--) , $x-1, $y-1));
$clr2 = imagecolorsforindex($im, $x , $y));
$r = intval($clr2["red"] +$degree*($clr2["red"]-$clr1["red"])); $g = intval( $clr2["green"]+$degree*($clr2["green"]- $clr1["green"]))
$b = intval($clr2["blue"]+$degree*($) clr2["blue"]-$clr1["blue"]));
$ r = min(255, max($r, 0)); $g = min(255, max($g, 0); ));
$b = min(255, max($b, 0)) ; //echo "r:$r, g:$g, b:$b
"; ($new_clr=imagecolorexact($im, $r, $g, $b))= =-1)
$new_clr = Imagecolorallocate($im, $r, $g, $b)
$cnt++;
if ($new_clr==-1) die("$x, $y ($cnt) でカラー割り当て失敗。");
imagesetpixel($im, $x, $y, $new_clr);
}
http://www.bkjia.com/PHPjc/318293.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/318293.html
技術記事
? //画像タイプの読み込み//1=GIF,2=JPG,3=PNG,4=SWF,5=PSD,6=BMP,7=TIFF(intelbyteorder),8=TIFF(motorolabyteorder),9=JPC, 10=JP2,11=JPX,12=JB2,13=SWC,14=IFF functionGetImageType($filen...