X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Проблема с обрезанием картинки
dzheka3d
dzheka3d
Topic Starter сообщение 28.7.2011, 0:48; Ответить: dzheka3d
Сообщение #1


Здравствуйте! Помогите разобраться с проблемой. У меня такая задача: есть картинка, нужно что бы она сначала уменьшилась до определенного размера, а потом обрезалась до нужного соотношения... Вот пример кода, который работает только в том случае, если закоментировать строку resize (resize($fn, $resize_img, 100)

[PHP]
function resize($source_path, $destination_path, $newwidth, $newheight = FALSE, $quality = FALSE)
{
ini_set("gd.jpeg_ignore_warning", 1); // иначе на некотоых jpeg-файлах не работает

list($oldwidth, $oldheight, $type) = getimagesize($source_path);

switch ($type) {
case 1: $typestr = 'gif' ;break;
case 2: $typestr = 'jpeg'; break;
case 3: $typestr = 'png'; break;
}
$function = "imagecreatefrom$typestr";
$src_resource = $function($source_path);

if (!$newheight) { $newheight = round($newwidth * $oldheight/$oldwidth); }
elseif (!$newwidth) { $newwidth = round($newheight * $oldwidth/$oldheight); }
$destination_resource = imagecreatetruecolor($newwidth,$newheight);

imagecopyresampled($destination_resource, $src_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);

if ($type = 2) { # jpeg
imageinterlace($destination_resource, 1); // чересстрочное формирование изображение
if ($quality) imagejpeg($destination_resource, $destination_path, $quality);
else imagejpeg($destination_resource, $destination_path);
}
else { # gif, png
$function = "image$typestr";
$function($destination_resource, $destination_path);
}

imagedestroy($destination_resource);
imagedestroy($src_resource);
}




$z="name.jpg"; // имя для сохранения файла
$fn="1.jpg"; // исходный файл (лежит в папке со скриптом)

$src=imagecreatefromjpeg($fn);
resize($fn, $resize_img, 100); // уменьшаем размер картинки $fn, присваиваем её переменной $resize_img, ширина 100


$w=imageSX($src); // получаем ширину
$h=imageSY($src);

$dst=imagecreatetruecolor($w,$h);
imagecopyresampled($dst, $src, 0, 0, 0, 0, 80, 60, 80, 60);
imagejpeg($dst,$z,100);

echo "Готово";
[/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКто и зачем покупает картинки обезьян по $200 тысяч?
NFT
167 metvekot 27099 6.3.2024, 21:58
автор: Boymaster
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыВыравнивание картинки по центру между текстом
10 NikN 2633 6.1.2021, 23:24
автор: buypushplatform
Открытая тема (нет новых ответов) Проблема с админкой
5 Prok 2315 29.7.2019, 20:04
автор: dvakarandasha
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПроблема с таблицей, которая выводится через скрипт
7 vanchester 1336 15.2.2019, 19:06
автор: Artos_mw
Открытая тема (нет новых ответов) Нужно добавить картинки на сайт
И видео
2 Ksardas777 4078 17.11.2018, 10:41
автор: Intuit89


 



RSS Текстовая версия Сейчас: 29.3.2024, 13:16
Дизайн