PHPのアップロードやリサイズ画像
-
23-09-2019 - |
質問
私は、アップロードが絵PHPを使用して、私はそれを保存する前に、幅180に画像のサイズを変更しますしたいというスクリプトに取り組んでいます。
私はWideImageライブラリを使用して試してみました - > saveFileTO(...)しかし、私は、ページにWideImage.phpが含まれている場合、ページは
!!空白を行きます
だからここにあなたが私を助け、どのようにサイズ変更されたバージョン
解決
あなたは、アップロード時に画像のサイズを変更するには PHPのGDライブラリを使用することができます。
次のコードは、あなたのサイズ変更を実装する方法のアイデアを与える必要があります:
// Get the image info from the photo
$image_info = getimagesize($photo);
$width = $new_width = $image_info[0];
$height = $new_height = $image_info[1];
$type = $image_info[2];
// Load the image
switch ($type)
{
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($photo);
break;
case IMAGETYPE_GIF:
$image = imagecreatefromgif($photo);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($photo);
break;
default:
die('Error loading '.$photo.' - File type '.$type.' not supported');
}
// Create a new, resized image
$new_width = 180;
$new_height = $height / ($width / $new_width);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Save the new image over the top of the original photo
switch ($type)
{
case IMAGETYPE_JPEG:
imagejpeg($new_image, $photo, 100);
break;
case IMAGETYPE_GIF:
imagegif($new_image, $photo);
break;
case IMAGETYPE_PNG:
imagepng($new_image, $photo);
break;
default:
die('Error saving image: '.$photo);
}
他のヒント
あなたは、私はちょうどそのようなAのタスクのために書いたクラスを使用することができます
http://code.google。 COM / P /画像2 /ソース/閲覧/#のsvn /トランク/含ん/クラスの
<?php
try
{
$image = new Image2($path_to_image);
}
catch (NotAnImageException $e)
{
printf("FILE PROVIDED IS NOT AN IMAGE, FILE PATH: %s", $path_to_image);
}
$image -> resize(array("width" => 180)) -> saveToFile($new_path); // be sure to exclude the extension
$new_file_location = $image -> getFileLocation(); // this will include the extension for future use
あなたもWideImageライブラリを使用する必要はありません。
ここでは、このスクリプトを確認します。 http://bgallz.org/502/php-upload-resize-image/
あなたは、画像をアップロードすると、一時イメージファイルに保存することから始めます。このスクリプトは、最大高さまたは最大幅の入力を持つフォームをオフに実行されます。それは、新しい幅/高さに基づいて、新たな画像ファイルを生成して、サーバー上に作成された新しいものに一時イメージをコピーしますので。
次のコードでこれを参照してください。
// Create temporary image file.
$tmp = imagecreatetruecolor($newwidth,$newheight);
// Copy the image to one with the new width and height.
imagecopyresampled($tmp,$image,0,0,0,0,$newwidth,$newheight,$width,$height);
いけない任意のライブラリを使用します このスクリプトをチェック http://dr-wordpress.blogspot.com/2013 /12/image-resizing-using-php.htmlする ちょうどからimgesの品質(0-99)を得ました このコードは、自動的に画像のサイズを変更し、一方のアップロード