Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ресайз картинки (факи читал) 
V
    Опции темы
jkffdwitnas
Дата 7.5.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



да это-то по-любому, чистил уже сто раз
PM MAIL WWW   Вверх
jkffdwitnas
Дата 11.5.2010, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



господа программеры, подскажите плз, хоть идею какую нибудь 

вот такой код
Код

$img = $_SERVER['DOCUMENT_ROOT'].$_GET['filename']; 
$CACHE_DIR = $_SERVER['DOCUMENT_ROOT']."/images/stories/cache";
$chache_name = substr($img,49); // displays/lg/M1962D-PZ.jpg
$chache_name = str_replace("/","_!_",$chache_name); //  displays_!_lg_!_M1962D-PZ.jpg
$chache_name = $CACHE_DIR.'/'.$chache_name; // var/www/.../images/stories/cache/displays_!_lg_!_M1962D-PZ.jpg



// если кешированный эскиз уже существует, отдать его и завершить работу
/*
if (file_exists ($chache_name)){
    header ('Content-type: image/jpeg');
    readfile ($chache_name);
    exit ();
}
*/
// если исходный файл не существует, завершить работу
if (!file_exists($img)){ exit(); }

// иначе — создаём новый эскиз
ob_start ();
// ------------------------------------------------------------

    $w = 120; $h = 120;

    $src = imagecreatefromjpeg($img);
    $w_src = imagesx($src);
    $h_src = imagesy($src);

/* // так тоже пробовал
$size = getimagesize($img);
$w_src = $size[0];
$h_src = $size[1]; 
*/

    header("Content-type: image/jpeg");

    if ($w_src != $h_src) {
        if ($w_src > $h_src) {
        $ratio = $w_src/$w;
        } else {
        $ratio = $h_src/$h;
        }
        $w_dest = round($w_src/$ratio);
        $h_dest = round($h_src/$ratio);
        $dest = imagecreatetruecolor($w_dest,$h_dest);
        imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
    } else if ($w_src == $h_src) {
        $dest = imagecreatetruecolor(120,120);
        imagecopyresampled($dest, $src, 0, 0, 0, 0, 120, 120, $w_src, $h_src);
    }

    imagejpeg($dest,'',100);
    imagedestroy($dest);
    imagedestroy($src);

// ------------------------------------------------------------
$content = ob_get_contents (); // записываем в $content содержимое эскиза
if (@$fp = fopen ($chache_name,'wb+')) // если всё хорошо, создаём файлик с кешем и пишем туда содержимое
{
    fputs ($fp,$content);
    fclose ($fp);
    ob_end_flush (); // выводим эскиз
} else {
    @ob_end_clean (); // очищаем буфер
}

результат (не из кеша) вот такой
http://at5.ua/resize/test.php

Добавлено через 2 минуты и 24 секунды
какая то ерунда с квадратными изображениями, остальные ресайзятся нормально
PM MAIL WWW   Вверх
jkffdwitnas
Дата 11.5.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



ну да, с кодом все ок оказывается. сама картинка эта квадратная была битой.

всем спасибо, задача решена
PM MAIL WWW   Вверх
Muerto
Дата 20.8.2010, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4





--------------------
user posted image
PM MAIL   Вверх
Novosib
Дата 23.12.2010, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.12.2010
Где: Новосибирск

Репутация: нет
Всего: нет



Гето тут собака зарыта 
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.