Программирование > PHP
Размер картинки
andymc:
--- Цитировать ---pahal:
Вопрос в том как из потока байтов из базы сделать resource image?
--- Конец цитаты ---
пожалуй никак
надо было сразу сохранять файлы на диск, а базу писать путь.
pahal:
Я ж уже указывал, что нужно все файлы именно в базу писать...
Сохранять их на диске, в базе держать названия и прочее, это всё понятно и просто, тут никаких вопросов нету.
Egorsha:
Решал подобную задачу.
Без использования временных файлов - не получится видимо.
Вот кусочек класса (немного подредактированный).
//*****************************************************
// Изменение масштаба рисунка в зависимости от параметра
// (используется временный файл)
//***************************************************** function PrintFotoResize($id, $kod)
{
$this->pIdPhoto=$id;
$this->GetFoto();
$tmpfname = tempnam ("/temp", "img");
$fp = fopen($tmpfname, "w");
fwrite($fp, $this->pPhoto);
fclose($fp);
$im=imagecreatefromjpeg($tmpfname);
$size=getimagesize($tmpfname);
$koef1=0.15;
$koef2=0.25;
unlink($tmpfname);
switch($kod)
{
case "small": { $new_w=intval($size[0]*$koef1); $new_h=intval($size[1]*$koef1); break; }
case "medium": { $new_w=intval($size[0]*$koef2); $new_h=intval($size[1]*$koef2); break; }
case "large": { $new_w=$size[0]; $new_h=$size[1] ;break; }
}
$im1=imagecreatetruecolor($new_w,$new_h);
$kd=imagecopyresized($im1,$im,0,0,0,0,$new_w,$new_h,$size[0],$size[1]);
if($kod==="large")
{
$my_www = imagecolorallocate($im1, 0, 0, 0);
imagefilledrectangle ($im1, $size[0]-145, $size[1]-16, $size[0]-3, $size[1]-3, imagecolorallocate($im1, 255, 255, 255));
ImageString($im1, 5, $size[0]-140, $size[1]-17, "www.mysite.ru", $my_www);
}
if (!headers_sent()) { header("Content-type: image/jpeg"); }
Imagejpeg($im1);
ImageDestroy($im1);
}
pahal:
Жаль, конечно, но всё же на промежуточных файлах основано.
Всё пытаюсь отойти от файлов, с файлами-то уже давно простое решение имеется, хоть и не с временными, но всё равно с файлами.
Но всё равно спасибо!
pahal:
Всё, как обычно решилось простым образом.
Нужно было просто все функции GD изучить и всё.
imagecreatefromstring(), и всё дела.
Навигация
Перейти к полной версии