2012-02-26 10 views
10
$image_p = imagecreatetruecolor($new_width, $new_height); 
$image = imagecreatefromjpeg($filename); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

どのようにフォルダ/にサイズ変更されたイメージを保存できますか? jpg/png/gifの画像の種類はどのように検出できますか?PHPイメージを保存した後にimagecopyresampled

答えて

12

を取得するためにimagejpeg機能

http://nz.php.net/manual/en/function.imagejpeg.php

を参照してくださいJPGなどの画像を保存するには:imagepng()imagejpeg()を、またはimagegif()を入力します。

イメージの種類を検出するには、ファイルの拡張子を確認し、それに基づいてください。しかし、画像ファイルの拡張子を手動で変更して実際に画像の種類を変更することがあるので、imagecreatefromがfalseではなく画像リソースを返したかどうかを確認することは常に良い方法です。ファイルの拡張子だけ返すように簡単な方法については

:あなたはimagecopyresampled()を適用した後

$ext = pathinfo($path_to_file, PATHINFO_EXTENSION); 

Manual entry on pathinfo()

3

あなたはどのタイプのイメージを定義することができます:外部ソースから、あなたの写真のフォーマットを取得するには、このコード

imagepng($iOut,'pic/mypic.png',3); 

&を追加し、このコードをここにhttp://php.net/manual/en/function.imagecopyresampled.php

4

// Save the image as 'simpletext.jpg' 
imagejpeg($im, 'path/to/your/image.jpg'); 
// or another image 
imagepng($im, 'path/to/your/image.png'); 

を参照してください例を

$link='http://example.com/example.png'; 
echo (substr ($link,strrpos ($link,".")+1)); 
0

あなたはこれらのいずれかを使用することができ、ファイルに画像を保存するには画像の延長使用に

$path_parts = pathinfo($filename); 
echo $path_parts['extension']; 
1
$filename = 'path/to/original/file.xxx'; // where xxx is file type (jpg, gif, or png) 
$newfilename = 'path/to/resized/file.xxx'; // where xxx is file type (jpg, gif, or png) 
$path_parts = pathinfo($filename); 
if ($path_parts['extension'] == 'jpg') { 
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefromjpeg($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
    imagejpeg($image_p, $newfilename); 
} elseif ($path_parts['extension'] == 'gif') { 
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefromgif($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
    imagegif($image_p, $newfilename); 
} elseif ($path_parts['extension'] == 'png') { 
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefrompng($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
    imagepng($image_p, $newfilename); 
} else { 
     echo "Source file is not a supported image file type."; 
} 
+0

ITSは透明にする必要があります。どのようにそれを行うことができます。 –

3

を、$dst_imageはあなたの画像リソースIDになります。

imagecopyresampled()関数を適用するだけで自動的にはファイルシステムにも保存されません。

ですから、機能imagejpeg()のいずれかを使用して、それを保存する必要があります、ただ、再生ファイルとしてPNGファイルで問題を作成する細かい作業imagepng()

// Output 
imagejpeg($dst_image, 'new-image.jpg', 100);