-
- /**
- * 圧縮画像の説明
- * @param sting $imgsrc 画像パス
- * @param string $imgdst 圧縮後の保存パス
- */
- function image_png_size_add($imgsrc,$imgdst){
- list($width,$height,$type)=getimagesize($imgsrc);
- $new_width = ($width>600?600:$width)*0.9;
- $new_height =($height>600?600:$height)*0.9;
- switch($type){
- ケース 1:
- $giftype=check_gifcartoon($imgsrc);
- if($giftype){
- header('Content-Type:image/gif');
- $image_wp=imagecreatetruecolor($new_width, $new_height);
- $image = imagecreatefromgif($imgsrc);
- imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
- imagejpeg($image_wp, $imgdst,75);
- imagedestroy($image_wp);
- }
- 休憩;
- ケース 2:
- header('Content-Type:image/jpeg');
- $image_wp=imagecreatetruecolor($new_width, $new_height);
- $image = imagecreatefromjpeg($imgsrc);
- imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
- imagejpeg($image_wp, $imgdst,75);
- imagedestroy($image_wp);
- 休憩;
- ケース 3:
- header('Content-Type:image/png');
- $image_wp=imagecreatetruecolor($new_width, $new_height);
- $image = imagecreatefrompng($imgsrc);
- imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
- imagejpeg($image_wp, $imgdst,75);
- imagedestroy($image_wp);
- 休憩;
- } // bbs.it-home.org
- }
- /**
- * 説明は GIF アニメーションかどうかを決定します
- * @param sting $image_file 画像パス
- * @return boolean t yes f no
- */
- function check_gifcartoon($image_file){
- $fp = fopen($image_file,'rb');
- $image_head = fread($fp,1024);
- fclose($fp);
- return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;
- }
- ?>
复制牌
例 2:
-
- /*
- 関数: 画像サイズの調整またはサムネイルの生成
- 戻り値: True/False
- パラメータ:
- $Image 調整が必要な画像 (パスを含む)
- $Dw=450調整時 最大幅; サムネイル作成時の絶対幅
- $Dh=450 調整時の最大高さ; サムネイル作成時の絶対高さ
- $Type=1 1、サイズを調整
- $path='img/';/ /path
- $phtypes=array(
- 'img/gif',
- 'img/jpg',
- 'img/jpeg',
- 'img/bmp',
- 'img/pjpeg',
- 'img/x-png '
- ) ;
- Function Img($Image,$Dw=450,$Dh=450,$Type=1){
- IF(!File_Exists($Image)){
- Return False;
- }
- //必要に応じてサムネイルを生成、コピー元の画像を $Image
- IF($Type!=1){
- Copy($Image,Str_Replace(".","_x.",$Image));
- $Image= Str_Replace(" .","_x.",$Image);
- }
- //ファイルタイプを取得し、異なるタイプに従って異なるオブジェクトを作成します
- $ImgInfo=GetImageSize($Image);
- Switch($ImgInfo[2 ]){
- ケース 1:
- $Img = @ImageCreateFromGIF($Image);
- Break;
- ケース 2:
- $Img = @ImageCreateFromJPEG($Image);
- Break;
- ケース 3:
- $Img = @ImageCreateFromPNG( $Image);
- Break;
- }
- //オブジェクトが正常に作成されなかった場合、それは画像ファイルではないことを意味します
- IF(Empty($Img)){
- //サムネイルの生成時にエラーが発生した場合は、削除します コピーされたファイル
- IF($Type!=1){Unlink($Image);}
- Return False;
- }
- //サイズ変更操作が実行された場合、
- IF($Type==1){
- $ w= 画像X($Img);
- $h=画像Y($Img);
- $width = $w;
- $height = $h;
- IF($width>$Dw){
- $Par=$Dw/$幅;
- $width=$Dw;
- $height=$height*$Par;
- IF($height>$Dh){
- $Par=$Dh/$height;
- $height=$Dh;
- $width= $width *$Par;
- }
- }ElseIF($height>$Dh){
- $Par=$Dh/$height;
- $height=$Dh;
- $width=$width*$Par;
- IF($幅> $Dw){
- $Par=$Dw/$width;
- $width=$Dw;
- $height=$height*$Par;
- }
- }Else{
- $width=$width;
- $height= $height ;
- }
- $nImg = ImageCreateTrueColor($width,$height); //新しいトゥルーカラーキャンバスを作成します
- ImageCopyReSampled($nImg,$Img,0,0,0,0,$width,$height,$ w,$ h);//画像のコピー部分をリサンプルし、サイズ変更します
- ImageJpeg ($nImg,$Image) //画像をブラウザまたは JPEG 形式でファイルに出力します
- Return True;
- //サムネイル生成操作を実行する then
- }Else{
- $w=ImagesX($Img);
- $h=ImagesY($Img);
- $width = $w;
- $height = $h;
- $nImg = ImageCreateTrueColor( $Dw,$Dh );
- IF($h/$w>$Dh/$Dw){ //高さの比率が大きい
- $width=$Dw;
- $height=$h*$Dw/$w;
- $IntNH=$height- $Dh;
- ImageCopyReSampled($nImg, $Img, 0, -$IntNH/1.8, 0, 0, $Dw, $height, $w, $h);
- }Else{ //幅比が大きい
- $height= $Dh;
- $width=$w*$Dh/$h;
- $IntNW=$width-$Dw;
- ImageCopyReSampled($nImg, $Img, -$IntNW/1.8, 0, 0, 0, $width, $Dh, $w, $h);
- }
- ImageJpeg ($nImg,$Image);
- Return True;
- }
- }
- ?>
- < body>
-
- アップロードできるファイルの種類は次のとおりです:=implode(' , ',$phtypes)?>< ;/form>
- if($_SERVER['REQUEST_METHOD']=='POST'){
- if (!is_uploaded_file($_FILES["photo"][ tmp_name])){
- echo "画像が存在しません";
- exit();
- }
- if(!is_dir('img')){//パスが存在しない場合は作成します
- mkdir('img ');
- }
- $upfile=$_FILES["photo" ];
- $pinfo=pathinfo($upfile["name"]);
- $name=$pinfo['basename'];// ファイル名
- $ tmp_name=$upfile["tmp_name"];
- $file_type=$ pinfo['extension'];//ファイルの種類を取得します
- $showphpath=$path.$name;
-
- if(in_array($upfile["type" ],$phtypes)){
- echo "ファイルの種類が一致しません! ";
- exit();
- }
- if(move_uploaded_file($tmp_name,$path.$name)){
- echo "成功! ";
- Img($showphpath,100,800,2);
- }
- echo "";
- }
- ?>
- < ;/html>
コードをコピー
|