Имеется следующий код. Я начинающий программист на PHP, поэтому просьба сильно не пинать за неиспользование очевидных решений. Сделал как нашел:)
Поставил перед собой задачу сделать следующее:
- есть исходная картинка file, требуется уменьшить ее до заданных размеров, именно обрезая лишнее по краям.
Скрипт делится на две части - первая уменьшает картинку до указанной высоты, вторая вычисляет разницу между заданной шириной и исходной уже уменьшенной, и сдвигает координаты начала на исходной картинке на половину лишней ширины.
По отдельности части работают, а вот вместе не хотят. Подскажите, в чем может быть проблема?
Спасибо
Код:<?php //исходный файл 1920 * 1200, для примера $file = $_GET['file']; list($width, $height, $type) = getimagesize($file); $slashPos = strrpos($file,'_'); $fileName = substr($file,$slashPos); $fileName = str_replace("_", "1", $fileName); $str="Content-Disposition: attachment; filename=".$fileName; header($str); header("Content-type: $type"); $new_height = 768; $k = $height / $new_height; $new_width = $width / $k; $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($file); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg($image_p, null, 100); $file = $image_p; // создана картинка с заданной высотой, ширина чуток больше $end_width = 1024; $end_height = 768; list($width2, $height2, $type) = getimagesize($file); // 1228 * 768 $slashPos = strrpos($file,'_'); $fileName = substr($file,$slashPos); $fileName = str_replace("_", "1", $fileName); $str="Content-Disposition: attachment; filename=".$fileName; header($str); header("Content-type: $type"); $razn = $width2 - $end_width; // 234 - разница между исходным и требуемым по ширине $razn = $razn / 2; // 117 - разница в ширине с одной стороны $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($file); imagecopyresampled($image_p, $image, 0, 0, $razn, 0, $end_width, $end_height, $width2, $height2); imagejpeg($image_p, null, 80); $file = $image_p; $str="Content-Disposition: attachment; filename=".$fileName; header($str); header("Content-type: application/octet-stream"); echo file_get_contents($file); ?>
Обрезание картинки средствами PHP. Требуется помощь
(Ответов: 1, Просмотров: 1184)
- 26.05.2012 16:08
Спасибо сказали:
Seopat(09.06.2012), - 05.06.2012 00:25
Может поможет? Небольшой кусок скрипта php, обрабатывающий изображение до определенных размеров. http://lagran.kz/archives/2534 Скрипт полностью работоспособен.
Спасибо сказали:
OKyJIucT(05.06.2012),
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Требуется помощь по UMI CMS | Web программирование | 2 | 29.03.2012 01:16 |
Требуется помощь по UMI CMS | Вопросы от новичков | 2 | 29.03.2012 01:16 |
Требуется помощь в оценки. | Поисковые системы | 0 | 18.10.2011 12:51 |
Требуется помощь с NVU | Web программирование | 0 | 12.05.2011 17:41 |
Ребёнку требуется помощь | Оффтоп и свободные темы | 5 | 29.10.2010 22:58 |