だから私は数時間こだわっています。私はこのためのGoogleのソリューションに疲れているが、ソリューションを見つけることができませんでした。だから、どんな助けでも大歓迎です。フォルダに保存せずに画像のサイズを変更する方法
私の問題:私は複数の画像をアップロードするためのフォームを使用しています
。データは複数のサーバーにバックアップされているため、データベースに格納する必要があります。 イメージをフォルダに保存することは解決策ではありません。私はデータベースに画像を保存できると思っていますが、アップロードしているすべての画像のサムネイルを作成する必要があります。それは私の問題です、どのようにそれらのtmpファイルからサムネイルを作成するのですか? を作成しました。が機能しません。そのサムネイルの内容を取得してデータベースに保存できません。
これはコンテンツを返さないイメージのサイズを変更するために使用したコードです。
function resize_image($file, $w, $h, $crop=FALSE) {
list($width, $height) = getimagesize($file);
$r = $width/$height;
if ($crop) {
if ($width > $height) {
$width = abs(ceil($width-($width*abs($r-$w/$h))));
} else {
$height = abs(ceil($height-($height*abs($r-$w/$h))));
}
$newwidth = $w;
$newheight = $h;
} else {
if ($w/$h > $r) {
$newwidth = $h*$r;
$newheight = $h;
} else {
$newheight = $w/$r;
$newwidth = $w;
}
}
$src = imagecreatefromjpeg($file);
$dst = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
return $dst;
}
これは、フォームがポストされた後に使用されている私のコードです:今、それだけでアップロードされたすべてのファイルを表示します。
for($i=0;$i< count($_FILES['upload_file']['tmp_name']);$i++)
{
$size = getimagesize($_FILES['upload_file']['tmp_name'][$i]);
$name = $_FILES['upload_file']['name'][$i];
$type = $size['mime'];
$file_size_bits = $size['bits'];
$file_size_width = $size[0];
$file_size_height = $size[1];
$name = $_FILES['upload_file']['name'][$i];
$image_size = $size[3];
$uploadedfile = $_FILES['upload_file']['tmp_name'][$i];
$tmpName = base64_encode(file_get_contents($_FILES['upload_file']['tmp_name'][$i]));
$sImage_ = "data:" . $size["mime"] . ";base64," . $tmpName;
echo '<p>Preview from the data stored on to the database</p><img src="' . $sImage_ . '" alt="Your Image" />';
}
アップロードするファイルのサムネイルを作成する必要があります。どのように私はそれを達成するのですか?
お知らせください。
ありがとうございました。
乾杯
あなたはImageMagickのを使用してみましたか? http://www.imagemagick.org/Usage/thumbnails/ – Willcodeforfun