[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод картинок в поток
ilystone
Всем привет

Вобщем нужен был скрипт для thumbs.

Вот чаво намутил:

// f - имя файла 
// q - качество сжатия
// src - исходное изображение
// dest - результирующее изображение

// качество jpeg по умолчанию

if (!isset($q)) $q = 100;
// создаём исходное изображение на основе
// исходного файла и опеределяем его размеры

$src = imagecreatefromjpeg($f);
$w_src = imagesx($src);
$h_src = imagesy($src);
header("Content-type: image/jpeg");
// операции для получения прямоугольного файла

$w_dest = 101;
$h_dest = 86;
// создаём пустую картинку
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// вывод картинки и очистка памяти
imagejpeg($dest,'',$q);
imagedestroy($dest);
imagedestroy($src);


Но у меня до header по любому вывод меню и т.п, + текст в статье.

Как быть? если не указываю
header("Content-type: image/jpeg"); 
, то выводит кракозябры



Спустя 29 минут, 55 секунд (5.08.2010 - 12:52) Basili4 написал(а):
ob_start посмотри

Спустя 2 минуты, 11 секунд (5.08.2010 - 12:54) linker написал(а):
Выноси генерилку thumb-картинок в отдельный скрипт и делай так
<img src="createthumb.php?ImageId=123" />

Спустя 4 минуты, 42 секунды (5.08.2010 - 12:58) Basili4 написал(а):
ilystone
У linker-а вариант 100 пудово верный

Спустя 6 минут, 7 секунд (5.08.2010 - 13:05) ilystone написал(а):
Basili4
Е. Попов Must Die. biggrin.gif biggrin.gif biggrin.gif

Поставь на Аву мужика с топором biggrin.gif

Спустя 8 минут, 8 секунд (5.08.2010 - 13:13) ilystone написал(а):
Стоп стоп.

Допустим я вынес createthumb.php в отдельный файл. Как узнать ImageId и что это вообще такое?

Для понятности объяснию мою идею. Я сливаю эту страницу

Мне кокраз и нужно, чтобы картинки типа того как там обрезались..

Спустя 5 минут, 52 секунды (5.08.2010 - 13:19) linker написал(а):
Ну ты же сохраняешь куда-то слитые картинки? Ну заноси данные о слитых картинках в базу, ну или формируй темповый файлик, где будет отношение Id - имя файла картинки. Вот этот Id и передавай скрипту, а в нем пиши выборку картинки по Id и обрезай на здоровье.

Спустя 11 минут, 22 секунды (5.08.2010 - 13:30) ilystone написал(а):
linker, не ты не понял: я ток дизайн сайта слил, а весь контент свой.

У меня был сначала сайт на joomla, http://www.gadgetel.ru, да он и щас есть, ток я его решил перенести на свой движок. Импортировал всю БД и слил от туда дизайн. Щас все на Денвере.

Спустя 36 минут, 18 секунд (5.08.2010 - 14:06) linker написал(а):
Какая разница, есть база, есть Id, есть картинки, выгребаешь, отдаешь на урезку, отображаешь. Я не понимаю в чем проблема?

Спустя 28 минут (5.08.2010 - 14:34) ilystone написал(а):
У меня скрипту передается $f - путь до картинки.

МОжно так сделать: <img src="includes/corp_resize.php?f=$full_path" /> ?

Скрипт получит полныйц путь до картинки и поехали


Спустя 2 часа, 23 минуты, 42 секунды (5.08.2010 - 16:58) ilystone написал(а):
Basili4,

ты говорил про ob_start

Я почитал, но не понял, как он здесь поможет?

Спустя 18 минут, 49 секунд (5.08.2010 - 17:17) Basili4 написал(а):
ilystone
ну в принципе все что до отправки заголовка в кеш потом отправил заголовок и из кеша в брузер

Спустя 38 секунд (5.08.2010 - 17:17) Basili4 написал(а):
ilystone
но это вариант не подойдет linker
Самый нормальный вариант предложил

Спустя 6 минут, 42 секунды (5.08.2010 - 17:24) ilystone написал(а):
Basili4
Мне если делать как linker, то надо уж не id а путь до картинки передавать, а с этим запары пока..

Спустя 3 минуты, 20 секунд (5.08.2010 - 17:27) Basili4 написал(а):
у тебя картинки где хранятся в базе ? если да то проблемы нет вообще ни как
передавай id
в скрипте выбирай из базы по id получай картинку и выводи её делов на 3 сек.

Спустя 12 минут, 39 секунд (5.08.2010 - 17:40) ilystone написал(а):
Картинки хранятся в полях intro и fulltext, т.е обычным html, как в любой статье.

Скрипт исполняется в цикле while ($row = mysql_fetch_assoc($result)), находит полные пути до картинок и помещает его в $path (в intro всегда одна)

Вобщем делаю по принципу linker:

...

$path =$match[2]; //в path лежит путь до изображения
include("thumb.php");
echo "<img src='thumb.php?path=".$path.">";



В thumb.php:

header ('Content-type: image/jpeg');
if (isset($_GET['path'])) {$path=$_GET['path'];}
$size = getimagesize($path);


...


Результат тот-же. На странице кракозябры, а хедер ругается.



Спустя 3 часа, 43 минуты, 13 секунд (5.08.2010 - 21:23) Basili4 написал(а):
ilystone
не правлельно не надо инклудить скрипт его надо только вызывать убери include("thumb.php");

Спустя 13 часов, 49 минут, 8 секунд (6.08.2010 - 11:12) ilystone написал(а):
Уфф.. разобрался..
Basili4 - спасибо тебе большое..

И все-таки.. как бы ты посоветовал поступить: Сохранять thumb один паз на диске а потом обращаться к нему через img src или генерировть в поток на лету?

Спустя 29 минут, 1 секунда (6.08.2010 - 11:41) Basili4 написал(а):
по мне лучше на диске

Спустя 41 минута, 10 секунд (6.08.2010 - 12:23) linker написал(а):
Конечно же лучше хранить на диске: оригинал и рядом thumb. Каждый раз на лету урезать картинки - это жесть.

Спустя 9 часов, 4 минуты, 25 секунд (6.08.2010 - 21:27) ilystone написал(а):
Так картинки то мелкие, 101 пикс в ширину, плюс всего 10 штук на странице.. У меня в базе больше тысячи статей, и по окончанию проекта еще будет добавляться, этож скока миниатюр выдет..

Спустя 1 день, 23 часа, 51 минута, 9 секунд (8.08.2010 - 21:18) linker написал(а):
ilystone
Какая разница сколько их будет? Разве в этом дело? Пара килобайт для каждой миниатюры погоды на диске тебе не сделают.

Спустя 15 часов, 14 минут, 17 секунд (9.08.2010 - 12:32) ilystone написал(а):
linker
Скорее всего ты прав...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.