|
|
|
| НУЖНА ПОМОЩЬ php программиста
есть пхп скрипт который превращает большую картинку в миниатюру(превьюшку),
как сделать так чтоб можно было делать миниатюры из нескольких картинок сразу? Засовывал в массив выдает ошибки. Всего картинок 10, мож функция какая нужна? ХЕЛП.
ini_set("display_errors", "1");
error_reporting(E_ALL);
$img_src = 'bw.jpg'; //путь к картинке
$width = 125;
$thumb = 'bw_thumbnail.jpg'; //миниатюра
if(file_exists($img_src)){
$image = imagecreatefromjpeg($img_src);
list($image_width, $image_height) = getimagesize($img_src);
$height = (($width / $image_width) * $image_height);
$tmp_img = imagecreatetruecolor($width, $height);
imagecopyresampled($tmp_img, $image, 0, 0, 0, 0, $width, $height, $image_width, $image_height);
if(is_writeable(dirname($thumb))){
imagejpeg($tmp_img, $thumb, 100);
echo 'Сохранено ' , $thumb;
}
else {
echo 'Не сохранено';
}
imagedestroy($tmp_img);
imagedestroy($image);
}
else {
echo 'File not found!';
} | |
|
|
|
|
|
|
|
для: vito57
(26.10.2009 в 23:17)
| | Делаешь новую БОЛЬШУЮ картинку
Начало повторения
Из очередной картинки делаешь превью
Вставляешь её в БОЛЬШУЮ с нужными координатами
Конец повторения | |
|
|
|
|
|
|
|
для: vito57
(26.10.2009 в 23:17)
| | Основываясь на Вашем коде можно сделать так:
ini_set("display_errors", "1");
error_reporting(E_ALL);
$images = array(1=>array('большая', 'маленькая'))
$n = count($images);
for ($i = 0; $i < $n; $i++)
resizeImg($images[$i][1], $images[$i][2]);
function resizeImg($src, $dest, $width = 125)
{
$img_src = $src;
$thumb = $dest
if(file_exists($img_src)){
$image = imagecreatefromjpeg($img_src);
list($image_width, $image_height) = getimagesize($img_src);
$height = (($width / $image_width) * $image_height);
$tmp_img = imagecreatetruecolor($width, $height);
imagecopyresampled($tmp_img, $image, 0, 0, 0, 0, $width, $height, $image_width, $image_height);
if(is_writeable(dirname($thumb)))
{
imagejpeg($tmp_img, $thumb, 100);
echo 'Сохранено ' , $thumb;
}
else
echo 'Не сохранено';
imagedestroy($tmp_img);
imagedestroy($image);
}
else
{
echo 'File not found!';
}
|
| |
|
|
|
|
|
|
|
для: vidok
(27.10.2009 в 09:02)
| | Parse error: syntax error, unexpected T_VARIABLE in Z:\home\localhost\www\gal\t.php on line 5
Выдает ошибку. Что делать? | |
|
|
|
|
|
|
|
для: vito57
(27.10.2009 в 13:31)
| | Точку с запятой забыли в строке $images = array(1=>array('большая', 'маленькая')) ; | |
|
|
|
|
|
|
|
для: Mirage
(27.10.2009 в 13:59)
| | Я далеко не профи в пхп.
array(1 так задавать массив это верно?
Parse error: syntax error, unexpected T_IF in Z:\home\localhost\www\gal\t.php on line 18
выдает ошибку. | |
|
|
|
|
|
|
|
для: vito57
(27.10.2009 в 15:42)
| | чтобы расставить точки-с-запятой после операторов вида $a=$b; профи быть не нужно.
Нужно лишь быть знакомым с языком на самом элементарном уровне.
array(5 => 20) означает массив из одного элемента с индексом 5 и значением 20. | |
|
|
|
|
|
|
|
для: Trianon
(27.10.2009 в 15:49)
| | Parse error: syntax error, unexpected $end in Z:\home\localhost\www\gal\t.php on line 41
А ЭТО ЧТО? | |
|
|
|
|
|
|
|
для: vito57
(27.10.2009 в 15:55)
| | обычно такое пишут , когда закрыты не все открытые скобки. Фигурные, как правило | |
|
|
|
|
|
|
|
для: Trianon
(27.10.2009 в 16:00)
| | Понимаю что всех уже достал. Но все же.
Вот что я имею
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
$images = array(1=>array('bw.jpg', 'sd.jpg')) ;
$n = count($images);
for ($i = 0; $i < $n; $i++)
resizeImg($images[$i][1], $images[$i][2]);
function resizeImg($src, $dest, $width = 125)
{
$img_src = $src;
$thumb = $dest ;
if(file_exists($img_src)){
$image = imagecreatefromjpeg($img_src);
list($image_width, $image_height) = getimagesize($img_src);
$height = (($width / $image_width) * $image_height);
$tmp_img = imagecreatetruecolor($width, $height);
imagecopyresampled($tmp_img, $image, 0, 0, 0, 0, $width, $height, $image_width, $image_height);
}
if(is_writeable(dirname($thumb)))
{
imagejpeg($tmp_img, $thumb, 100);
echo 'Save' , $thumb;
}
else {
echo 'not Save';
imagedestroy($tmp_img);
imagedestroy($image);
}
}
?>
Выдает
Notice: Undefined offset: 0 in Z:\home\localhost\www\gal\t.php on line 9
[ убрать подсказку | никогда больше не показывать ]
Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.
Вы можете установить более слабый контроль ошибок одним из следующих способов:
* Впишите в скрипты строчку:
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
* Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:
php_value error_reporting 7
* Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
[Денвер: показать возможную причину ошибки]
Notice: Undefined offset: 0 in Z:\home\localhost\www\gal\t.php on line 9
Не сохранено
Notice: Undefined variable: tmp_img in Z:\home\localhost\www\gal\t.php on line 34
Warning: imagedestroy(): supplied argument is not a valid Image resource in Z:\home\localhost\www\gal\t.php on line 34
Notice: Undefined variable: image in Z:\home\localhost\www\gal\t.php on line 35
Warning: imagedestroy(): supplied argument is not a valid Image resource in Z:\home\localhost\www\gal\t.php on line 35 | |
|
|
|
|
|
|
|
для: vito57
(27.10.2009 в 16:13)
| | Вот так получилось создать превьюшки
<?
$width = 125;
$array = array('bw.jpg', 'sd.jpg');
foreach ($array as $img_src)
{
if(file_exists($img_src)){
$thumb = str_replace('.', '_thumbnail.', $img_src);
$image = imagecreatefromjpeg($img_src);
list($image_width, $image_height) = getimagesize($img_src);
$height = (($width / $image_width) * $image_height);
$tmp_img = imagecreatetruecolor($width, $height);
imagecopyresampled($tmp_img, $image, 0, 0, 0, 0, $width, $height, $image_width, $image_height);
if(is_writeable(dirname($thumb))){
imagejpeg($tmp_img, $thumb, 100);
} else {
//error
}
imagedestroy($tmp_img);
imagedestroy($image);
}
else {
//error
}
} ?>
|
А как их вывести в броузер сразу после создания?
И возможно ли их выводить не сохраняя на диск? | |
|
|
|
|
|
|
|
для: vito57
(27.10.2009 в 16:22)
| | по одному запросу браузер получает лишь один документ. | |
|
|
|