Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > И снова проблема с миниэскизами


Автор: Gold Dragon 31.1.2012, 14:50
Где я ошибаюсь, помогите. Выводит не картинку а буфер

Код

$thumb_size = 100;
$dst_im = get_image($img_src, $thumb_size);
$image = '<img src="' . $dst_im . '" />';
echo '<hr>' . $image . '<hr>';

function get_image($src, $thumb_size) {
    $info_image = getimagesize($src);
    $src_w = $info_image[0];
    $src_h = $info_image[1];
    switch($info_image[2]){
        case 3:
            $src_im = imagecreatefrompng($src);
            break;
        case 2:
            $src_im = imagecreatefromjpeg($src);
            break;
        case 1:
            $src_im = imagecreatefromgif($src);
            break;
    }
    if ($src_w > $src_h) {
        $new_width = ($src_w > $thumb_size) ? $thumb_size : $src_w;
        $coeff = $src_w / $src_h; // если да, то делим ширину на высоту
        $new_height = intval($new_width / $coeff);
    } else {
        $new_height = ($src_h > $thumb_size) ? $thumb_size : $src_h;
        $coeff = $src_h / $src_w; // и наоборот...
        $new_width = intval($new_height / $coeff);
    }
    $dst_im = imagecreatetruecolor( $new_width, $new_height );
    imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, $new_width, $new_height, $src_w, $src_h);
    header("Content-type: image/jpeg");
    $res = imagejpeg($dst_im);
    imagedestroy($dst_im);
    return $res;
}


$img_src - это относительный адрес типа _http://my_site.ru/images/111.jpg
Может быть в этом проблема?

Автор: MoLeX 31.1.2012, 15:30
Gold Dragon, так нельзя. ты смешиваешь html и ресурс img. 

Автор: ksnk 31.1.2012, 16:02
Цитата(MoLeX @  31.1.2012,  15:30 Найти цитируемый пост)
 так нельзя

При определенной ловкости рук - можно.  smile  Другое дело - нужно ли...
Код

$dst_im = file_get_contents('tfile_pic6.png');
$image = '<img src="data:image/gif;base64,' . base64_encode($dst_im) . '" />';
echo '<hr>' . $image . '<hr>';



http://www.xiper.net/collect/html-and-css-tricks/overclock-site/data-url.htmlможно и для Ie6-7 решение найти

Автор: Gold Dragon 31.1.2012, 17:12
MoLeX, а как можно?

Добавлено через 3 минуты и 43 секунды
ksnk, интересная статья, я что-то о таком читал раньше. Возьму на заметку, Но наверное не к этому примеру smile

Автор: $дмитрий 31.1.2012, 17:51
Превью должно быть сгенерированно в отдельном файле, что-то типа <img src="preview.php">. А уже в preview.php вызывать функцию get_image. Нельзя смешивать текст и бинарные данные!

Автор: Gold Dragon 31.1.2012, 18:14
тогда получается что именно хочу смешать... Т.е. простого решения нет? 

кажется, я какую-то суть не могу уловить smile

Автор: Absinthe 31.1.2012, 18:24
Gold Dragon, каждая картинка - это отдельный запуск твоего вебприложения. Теперь понятно?

Автор: Gold Dragon 31.1.2012, 18:28
так это я понял... а если Ajax?

Автор: Absinthe 31.1.2012, 18:40
Gold Dragon, каждый ajax-запрос - это отдельный запуск твоего вебприложения.

На всякий случай: каждый обычный запрос клиентом по адресу - тоже отдельный запуск твоего вебприложения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)