このクラスを使用しようとしています: http://www.verot.net/php_class_upload_samples.htm
画像のサイズ変更と残りの部分の塗りつぶしに慣れている人がいれば、助けてください。
アイデアは、600x600 の画像をアップロードする場合、1-600x600 と 1-300x300 の 2 つの画像を保存することです。これまでのところ、うまく機能しています。ただし、ユーザーがサイズ 749x1202 の画像をアップロードすることを選択した場合、スクリプトで 300x300 と 600x600 で見栄えを良くし、無駄なスペースが白で塗りつぶされているため、画像は 600x600 のままです。249x400 などの小さな画像でも同じことが起こります。
これまでの私のコードは次のとおりです。
// Set the upload directory
$uploadDir = '../../htdocs/public/product_images/'.$id.'/';
$thumbDir = '../../htdocs/public/product_images/'.$id.'/thumbs/';
@mkdir($uploadDir, 0755, true);
@mkdir($thumbDir, 0755, true);
// Store the file content in a variable
$file = file_get_contents('php://input');
// Save the file to the server
file_put_contents($uploadDir . $filename, $file);
$targetFile = str_replace('//','/',$uploadDir) . $filename;
$targetThumb = str_replace('//','/',$thumbDir) . $filename;
copy ($targetFile,$targetThumb);
$image = new upload($targetFile);
if ($image->uploaded) {
$image->image_resize = true;
$image->image_ratio_fill = true;
$image->image_x = 600;
$image->image_y = 600;
$image->file_overwrite = true;
$image->process($uploadDir);
}
$image = new upload($targetThumb);
if ($image->uploaded) {
$image->image_resize = true;
$image->image_ratio_fill = true;
$image->image_x = 300;
$image->image_y = 300;
$image->file_overwrite = true;
$image->process($thumbDir);
}
別の方法を使用することもできますが、誰かが私を少し説明してくれれば、とても感謝しています.