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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скрипт уменьшения картинки 
V
    Опции темы
gcc
Дата 25.10.2010, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 17



в каталоге есть картинки большие gif и jpeg...
OC Debian

я попробовал найти готовый скрипт в гугле для уменьшение картинки в указанный размер

http://www.google.com.ua/search?hl=ru&...q=&gs_rfai=

только что перепробовал 10 различных скриптов, но какая-то аномалия, картинка не уменьшается, один раз уменьшилась, но фон стал черного цвета...

логирование в php включено на экран, но ошибок никаких не пишет и я смотрел в логах, ошибок нету...

вот последний скрипт который я пробовал:
http://www.abc-it.lv/index.php/id/728

вопрос: кто знает проверенный скрипт уменьшение изображения gif,jpeg в указанный размер? подскажите, пожалуйста....


phpinfo():
Код
gdGD Support    enabled 
GD Version    2.0 or higher 
FreeType Support    enabled 
FreeType Linkage    with freetype 
FreeType Version    2.3.7 
T1Lib Support    enabled 
GIF Read Support    enabled 
GIF Create Support    enabled 
JPG Support    enabled 
PNG Support    enabled 
WBMP Support    enabled







Это сообщение отредактировал(а) gcc - 25.10.2010, 05:52
PM WWW ICQ Skype GTalk Jabber   Вверх
Sanchezzz
Дата 25.10.2010, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

/***********************************************************************************
Создаем файл img.php
***********************************************************************************/
function img_resize($src, $dest, $width=73, $height=63, $rgb=0x07111F, $quality=100)
{
  $src = $_SERVER['DOCUMENT_ROOT'].$src;
  if (!file_exists($src)) return false;

  $size = getimagesize($src);

  if ($size === false) return false;

  $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  $icfunc = "imagecreatefrom" . $format;
  if (!function_exists($icfunc)) return false;

  $x_ratio = $width / $size[0];
  $y_ratio = $height / $size[1];

  $ratio       = min($x_ratio, $y_ratio);
  $use_x_ratio = ($x_ratio == $ratio);

  $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio);
  $new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio);
  $new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width) / 2);
  $new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);

  $isrc = $icfunc($src);
  $idest = imagecreatetruecolor($width, $height);

  imagefill($idest, 0, 0, $rgb);
  imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
    $new_width, $new_height, $size[0], $size[1]);

  imagejpeg($idest/*, $dest, $quality*/); 

  imagedestroy($isrc);
  imagedestroy($idest);

  //return true;

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

if (isset($_GET['url']) && isset($_GET['w']) && isset($_GET['h'])){
img_resize($_GET['url'],'',$_GET['w'],$_GET['h']);
}


пример 
Код

<img src="img.php?url=/upload/img.png&w=88&h=40"/>


Как сохранить в файл смотрим документацию. 

imagejpeg 2 параметр указываем путь и имя файла сохранит новый файл=)

Добавлено @ 07:07
Код

img_resize($src, 
$dest,                 // Исходное изображение
$width=73,         // Ширина
$height=63,        // Высота
$rgb=0x07111F, // Фон по умолчанию.   #07111F css
$quality=100      // Качество
)





Это сообщение отредактировал(а) Sanchezzz - 25.10.2010, 07:08


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
gcc
Дата 25.10.2010, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 17



Sanchezzz, 

ничего не происходит...

белый экран и ошибок нету


Код

<?php 
/** 
* $filename string = 'img.jpg' - путь к изображению 
* $percent string  = 300 - ширина уменьшенной копии картинки 
* $quality string  = 0-100 - качество изображения (только для JPG) 
**/ 

// resize("/var/www/newsne/data/public_html/pic/5qz9PuxHjJ-image005.gif",300,85);
/*********************************************************************************** 
Функция img_resize(): генерация thumbnails 
Параметры: 
  $src             - имя исходного файла 
  $dest            - имя генерируемого файла 
  $width, $height  - ширина и высота генерируемого изображения, в пикселях 
Необязательные параметры: 
  $rgb             - цвет фона, по умолчанию - белый 
  $quality         - качество генерируемого JPEG, по умолчанию - максимальное (100) 
***********************************************************************************/

// phpinfo();

$src = "/var/www/ne/data/public_html/pic/5qz9PuxHjJ-image005.gif";
 $dest = "/var/www/ne/data/public_html/pic/5qz9PuxHjJ-image00577.gif";
 $width = "100";
 $height = "100";
 
 
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100) 
{ 
  if (!file_exists($src)) return false; 

  $size = getimagesize($src); 

  if ($size === false) return false; 

  // Определяем исходный формат по MIME-информации, предоставленной 
  // функцией getimagesize, и выбираем соответствующую формату 
  // imagecreatefrom-функцию. 
  $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1)); 
  $icfunc = "imagecreatefrom" . $format; 
  if (!function_exists($icfunc)) return false; 

  $x_ratio = $width / $size[0]; 
  $y_ratio = $height / $size[1]; 

  $ratio       = min($x_ratio, $y_ratio); 
  $use_x_ratio = ($x_ratio == $ratio); 

  $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio); 
  $new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio); 
  $new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width) / 2); 
  $new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2); 

  $isrc = $icfunc($src); 
  $idest = imagecreatetruecolor($width, $height); 

  imagefill($idest, 0, 0, $rgb); 
  imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,  
    $new_width, $new_height, $size[0], $size[1]); 

  imagejpeg($idest, $dest, $quality); 

  imagedestroy($isrc); 
  imagedestroy($idest); 

  return true; 

}
?>

PM WWW ICQ Skype GTalk Jabber   Вверх
bars80080
Дата 25.10.2010, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(gcc @  25.10.2010,  19:04 Найти цитируемый пост)
белый экран и ошибок нету

а где здесь хоть один вывод в браузер? может, она отработала нормально? как проверялось?
PM MAIL WWW   Вверх
gcc
Дата 25.10.2010, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 17



bars80080, 

Код

  $src             - имя исходного файла 
  $dest            - имя генерируемого файла 


я указал путь к "исходного файла" и к "генерируемого файла "

у меня есть файл(ы) и его нужно уменьшить...

Это сообщение отредактировал(а) gcc - 25.10.2010, 19:41
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 31.10.2010, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 17



я попросил чтобы поставили ImageMagic...

с gd конвертирование как-то не понятно...
PM WWW ICQ Skype GTalk Jabber   Вверх
bars80080
Дата 31.10.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(gcc @  25.10.2010,  05:42 Найти цитируемый пост)
вопрос: кто знает проверенный скрипт уменьшение изображения gif,jpeg в указанный размер? подскажите, пожалуйста....

Код

function img_resize($src, $dest, $width = 0, $height = 0, $proportion = false, $fields = false, $rgb=0xFFFFFF, $quality=100) {
    if(!file_exists($src)) return false;
    $size = getimagesize($src);
    if($size === false) return false;   
    if(empty($width)) { $width = $size[0]; }
    if(empty($height)) { $height = $size[1]; }
    if($proportion === true) {
        $h0 = $height;
        $height = ($width/$size[0])*$size[1];
        if($height > $h0) { $height = $h0; $width = ($height/$size[1])*$size[0]; }}
    if($width > $size[0]) $width = $size[0];
    if($height > $size[1]) $height = $size[1];
    $format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
    $icfunc = 'imagecreatefrom'.$format;
    if(!function_exists($icfunc)) return false;
    if($fields) {
        $x_ratio = $width/$size[0];
        $y_ratio = $height/$size[1];
        $ratio = min($x_ratio, $y_ratio);
        $use_x_ratio = ($x_ratio == $ratio);
        if($use_x_ratio) { $new_width = $width; $new_left = 0; } 
        else { $new_width = floor($size[0] * $ratio); $new_left = floor(($width - $new_width) / 2); }
        if(!$use_x_ratio) { $new_height = $height; $new_top = 0; }
        else { $new_height = floor($size[1] * $ratio); $new_top = floor(($height - $new_height) / 2); }
    } else {
        $new_left = 0; $new_top = 0; $new_width = $width; $new_height = $height;
    }
    $isrc = $icfunc($src);
    $idest = imagecreatetruecolor($width, $height);
    if(is_array($dest)) { 
        $nd = explode('.', $src); 
        $ndc = count($nd); 
        $nd[$ndc - 2] .= $dest[0]; $dest = implode('.', $nd); }
    imagefill($idest, 0, 0, $rgb);
    imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
    imagejpeg($idest, $dest, $quality);
    imagedestroy($isrc);
    imagedestroy($idest);
    return $dest;
}
постоянно пользуюсь этим, без замечаний. уменьшение, увеличение, растягивание, добавление полей по краям

как видно, это почти идентичная функция твоей.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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