2017-10-06 25 views
0

私がimagecopyresized()関数をPHP上で使用すると、イメージリソースとして返されます。このイメージからイメージデータを取得することができますresource.mayは文字列または配列のファイルの場所のようです$ _FILES []グローバル配列のようなファイルのいくつかのデータを含んでいます。おかげイメージファイルをPHPイメージから取得する

$source = $_FILES['image']['tmp_name']; 
list($width,$height) = getimagesize($source); 
echo BR.$height." ".$width; 
$desired_height = 28; 
$scale = $width/$height; 
$new_width = $desired_height * $scale; 
$new_height = $desired_height; 
$original_image = imagecreatefromjpeg($source); 
$resized_image = imagecreatetruecolor($new_width, $new_height); 
if(imagecopyresized($resized_image, $original_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height)){ 
    echo BR."image resized".BR; 
} 

iは、データベースに$resized_imageの場所を格納したいが、私は、この変数からファイルの場所にアクセスするように見える傾けます。

答えて

0

これは、イメージの内容を$ buffer変数にjpegとして格納します。

ob_start(); 
imagejpeg($im, null, 90); 
$buffer = ob_get_contents(); 
ob_end_clean(); 

あなたはその後、所望の経路にfile_put_contentsでそれを保存し、データベースへのパスを保存することができます。

は、Nette\Utils\ImageIntervention\Imageとして、あなたがよりよいAPIをサードパーティのライブラリを使用することができ、またhttps://secure.php.net/manual/en/function.imagejpeg.php

参照してください。

0

imagecreatetruecolorは、メモリにイメージリソースを作成し、その識別子を返します。イメージ内に物理ファイルを作成することはありません。これは、ディスクにイメージファイルを作成して保存します

imagejpeg($resized_image, '/path/to/save/img.jpg')

:よう

使用imagejpeg。そして、そのパスをデータベースに保存することができます。

参照:http://php.net/manual/en/function.imagejpeg.phphttp://php.net/manual/en/function.imagecreatetruecolor.php

0

の$ resized_imageがafileは関連付けられていません。 imagejpeg、imagepng、..メソッドを使用してリソースをファイルに保存する必要があります。

imagejpeg($resized_image, 'path/file.jpg'); 
関連する問題