Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Уменьшение размера PNG картинок [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: Уменьшение размера PNG картинок
3d_killer
Отправлено: 12 Декабря, 2011 - 12:49:20
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




PHP:
скопировать код в буфер обмена
  1. function resizeproportionalImage($originalFile,$sizeW,$outputFile){
  2.         chmod($outputFile, 0777);
  3.         list($imagewidth, $imageheight, $imageType) = getimagesize($originalFile);
  4.         $src=imagecreatefrompng($originalFile);
  5.         if ($imagewidth > $imageheight){
  6.                 $koe=$imagewidth/$sizeW;
  7.                 $new_h=ceil ($imageheight/$koe);
  8.                 $dst=ImageCreate ($sizeW, $new_h);
  9.         setTransparency($dst,$dst);
  10.                 ImageCopyResampled ($dst, $src, 0, 0, 0, 0, $sizeW, $new_h, ImageSX ($src), ImageSY ($src));
  11.         } else {
  12.                 $koe=$imageheight/$sizeW;
  13.                 $new_h=ceil ($imagewidth/$koe);
  14.                 $dst=ImageCreate ($new_h, $sizeW);
  15.         setTransparency($dst,$dst);
  16.                 ImageCopyResampled ($dst, $src, 0, 0, 0, 0, $new_h,$sizeW, ImageSX ($src), ImageSY ($src));
  17.         }
  18.         imagepng($dst, $outputFile);
  19.         return $outputFile;
  20. }
  21.  
  22. function setTransparency($new_image, $image_source)
  23. {
  24.         $transparencyIndex = imagecolortransparent($image_source);
  25.         $transparencyColor = array('red' => 255, 'green' => 255, 'blue' => 255);
  26.        
  27.         if ($transparencyIndex >= 0)
  28.             $transparencyColor = imagecolorsforindex($image_source, $transparencyIndex);  
  29.        
  30.         $transparencyIndex = imagecolorallocate($new_image, $transparencyColor['red'], $transparencyColor['green'], $transparencyColor['blue']);
  31.         imagefill($new_image, 0, 0, $transparencyIndex);
  32.         imagecolortransparent($new_image, $transparencyIndex);
  33. }


ваша
 
My status
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 12:53:21
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




я вам давал другую функцию, котороя изменяет размер именно для высоты.
посмотрите в 6 посте, и замените на ту которая имеется щас


-----
Just do it
 
 Top
3d_killer
Отправлено: 12 Декабря, 2011 - 13:00:49
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




во отлично, спс огромное Радость
(Добавление)
а вот еще вопрос как то не получает имя файла который я пытаюсь закачать через выбор
<input name="" type="file" class="files">
почемуто в переменной имя файла без пути в итоге не пашет...
(Добавление)
переменную беру так file_name=$('.files').val();
 
My status
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 13:12:37
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




Цитата:
переменную беру так file_name=$('.files').val();
и что выводит? и что надо чтобы выводилось?


-----
Just do it
 
 Top
3d_killer
Отправлено: 12 Декабря, 2011 - 13:14:42
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




выводит имя файла без пути хотя визуально прописан путь при выборе файла
 
My status
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 13:20:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




здается мне что это наворот jquery, потому как чистый js должен возвратить полный путь

а для каких целей вообще это нужно?


-----
Just do it
 
 Top
3d_killer
Отправлено: 12 Декабря, 2011 - 13:22:43
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




ну выбраный файл загрузить, да это Jquery
 
My status
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 13:25:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




http://boolean[dot]org[dot]ua/index.php?id=190
http://fullajax[dot]ru/examples/uploader[dot]html
читаем, пробуем, потом задаем вопросы


-----
Just do it
 
 Top
3d_killer
Отправлено: 12 Декабря, 2011 - 14:04:13
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




ниче не получается.... ошибки идут что не найден файл

PHP:
скопировать код в буфер обмена
  1. <div class='upload'><table class="load"><tr><td valign="middle"; align="center">
  2.  
  3. Загрузка картинки для <a class="image_menu"></a><br><br>
  4. <input name="" type="file" class="files"><br><br>
  5. <input name="" type="button" value="Загрузить картинку" class="load_img">
  6. <input name="" type="button" value="Отмена" class="cansel">
  7.  
  8. </td></tr></table></div>
 
My status
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 14:17:44
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




а какая связь между ошибками и куском html-кода?


-----
Just do it
 
 Top
3d_killer
Отправлено: 12 Декабря, 2011 - 14:25:46
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




так написан код, <input name="" type="file" class="files"><br><br> здесь при выборе отражается путь к файлу локальный при нажатии на кнопку путь должен записаться в переменную и дальше попасть в ваши функции, но попадает только имя файла без пути, следовательно функция не может найти файл и начинаются ошибки
 
My status
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 14:50:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




такс. стоп. во первых это клиентская сторона
моя функция работает на стороне сервера. итак что нам нужно чтобы обработать файл.
если файл пришел по сабмиту то во-первых нужно указать имя инпута с файлом, так как мы должны будем определить этот файл на сервере.
например так
CODE (html):
скопировать код в буфер обмена
  1. <input name="file" type="file" class="files" />

на сервере принимаем файл
PHP:
скопировать код в буфер обмена
  1.  
  2. $outpuefile = 'result.png';
  3. $sizeW = 200;
  4. if($_FILES['file']['tmp_name']){
  5. //мы можем скопировать файл куда нам нужно и потом работать с сохраненным файлом
  6. $newfilename = 'путь/к/папку/с/файлом'.$_FILES['file']['name'];
  7.  copy($_FILES['file']['tmp_name'],$newfilename);
  8. //тут вызываем функцию обработки
  9. resizeproportionalImage($newfilename,$sizeW,$outputFile);
  10. // или работать напрямую с файлом который пришел
  11. resizeproportionalImage($_FILES['file']['tmp_name'],$sizeW,$outputFile);
  12. }
  13.  


-----
Just do it
 
 Top
3d_killer
Отправлено: 12 Декабря, 2011 - 14:56:18
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




путь/к/папку/с/файлом а это откуда возьмется?
 
My status
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 14:59:16
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




ну это вы сами укажите. например, создайте в папке со скриптом еще одну папку и назовите ее "files" а потом укажите вместо "путь/к/папку/с/файлом" "files/" и всех делов


-----
Just do it
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB