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 :: Работа с изображениями...

 PHP.SU

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


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

> Без описания
ПхП-ломастер
Отправлено: 01 Июля, 2008 - 14:02:03
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Июнь 2008  


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

[+]


Здраствуйте пхп-мастера! Я у Вас на форуме нашел замечательную штуку: скрипт создания превьюшек (функция img_resize()) написанный Valenok. Там изображение уменьшаетсь до заданных размеров. А можно ли сделать так, чтобы изображение уменьшалось, к примеру, на 50% или на 30% от изначального размера?

И еще вопрос: помогите, мне нужно сделать надпись с названием моего сайта на изображении, прозрачную или на белом фоне, в правом нижнем углу
 
 Top
valenok Модератор
Отправлено: 01 Июля, 2008 - 16:04:43
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




$newX = imagesx($img) * 0.5 ;
$newY = imagesy($img) * 0.3;

где $img это ресурс - оригинальная картинка.
Также оригинальные размеры можно получить припомощи функции getimagesize()

--
Автор не я.

--
http://www[dot]sitepoint[dot]com/article[dot][dot][dot]rmark-images-php
http://www[dot]google[dot]com/search?ie=[dot][dot][dot];q=watermark+php


-----
Truly yours, Sasha.
 
My status
 Top
ПхП-ломастер
Отправлено: 01 Июля, 2008 - 16:33:57
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Июнь 2008  


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

[+]


Спасибо! А что за водяные знаки для изображений?

А насчет текста на картинке можно использовать ф-цию imagestring(image, font_size, posX, posY, "text", color);
 
 Top
valenok Модератор
Отправлено: 02 Июля, 2008 - 00:17:13
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Когда накладывают кусочек своего изображения (марку, логотип, знак, подпись)
поверх другого - называется watermark, от части потому что он ещё и полу-прозрачный


-----
Truly yours, Sasha.
 
My status
 Top
ПхП-ломастер
Отправлено: 02 Июля, 2008 - 15:05:55
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Июнь 2008  


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

[+]


А что лучше? Простой текст или водяной знак? Текст то наверно проще удалить/обрезать?

Вопросик: я накладываю белый текст на картинку, но вот незадача, некоторые картинки имеют белые края, при сжимании их, функцией (см. img_resize) и текст становится невидно ( Как быть?
 
 Top
valenok Модератор
Отправлено: 02 Июля, 2008 - 16:21:33
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




накладывать зелёный текст / после сжатия / не накладывать на сжатую


-----
Truly yours, Sasha.
 
My status
 Top
ПхП-ломастер
Отправлено: 02 Июля, 2008 - 16:34:48
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Июнь 2008  


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

[+]


Извините, но не понял, что вы написали (
 
 Top
san4es
Отправлено: 08 Июля, 2008 - 13:20:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 201
Дата рег-ции: Март 2008  
Откуда: СПб, Ломоносов


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




ПхП-ломастер пишет:
нужно сделать надпись с названием моего сайта на изображении, прозрачную или на белом фоне

http://www[dot]codenet[dot]ru/webmast/php/gd/
урок 2
 
 Top
valenok Модератор
Отправлено: 08 Июля, 2008 - 13:23:57
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Цитата:
я накладываю белый текст на картинку, но вот незадача, некоторые картинки имеют белые края, при сжимании их, функцией (см. img_resize) и текст становится невидно ( Как быть?


Быть так:
1. Накладывать текст другим цветом
2. Не накладывать
3. Сначала сжать, а только потом накладывать


-----
Truly yours, Sasha.
 
My status
 Top
Ыыы
Отправлено: 31 Июля, 2008 - 08:05:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


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




Цитата:
from Valenok$newX = imagesx($img) * 0.5 ;
$newY = imagesy($img) * 0.3;

А как это же сделать напримере этой функции?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /***********************************************************************************
  3. Функция img_resize(): генерация thumbnails
  4. Параметры:
  5.   $src             - имя исходного файла
  6.   $dest            - имя генерируемого файла
  7.   $width, $height  - ширина и высота генерируемого изображения, в пикселях
  8. Необязательные параметры:
  9.   $rgb             - цвет фона, по умолчанию - белый
  10.   $quality         - качество генерируемого JPEG, по умолчанию - максимальное (100)
  11. ***********************************************************************************/
  12. function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=$imageresize_quality)
  13. {
  14.  
  15.   $size = getimagesize($src);
  16.  
  17.   if ($size === false) return false;
  18.  
  19.   // Определяем исходный формат по MIME-информации, предоставленной
  20.   // функцией getimagesize, и выбираем соответствующую формату
  21.   // imagecreatefrom-функцию.
  22.   $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  23.   $icfunc = "imagecreatefrom" . $format;
  24.   if (!function_exists($icfunc)) return false;
  25.  
  26.   $x_ratio = $width / $size[0];
  27.   $y_ratio = $height / $size[1];
  28.  
  29.   $ratio       = min($x_ratio, $y_ratio);
  30.   $use_x_ratio = ($x_ratio == $ratio);
  31.  
  32.   $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio);
  33.   $new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio);
  34.   $new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width) / 2);
  35.   $new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
  36.  
  37.   $isrc = $icfunc($src);
  38.   $idest = imagecreatetruecolor($width, $height);
  39.  
  40.   imagestring(10,5,5,"YES!",255);
  41.  
  42.   imagefill($idest, 0, 0, $rgb);
  43.   imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
  44.     $new_width, $new_height, $size[0], $size[1]);
  45.  
  46.   imagejpeg($idest, $dest, $quality);
  47.  
  48.   imagedestroy($isrc);
  49.   imagedestroy($idest);
  50.  
  51.   return true;
  52.  
  53. }
  54.  
  55.   //if (img_resize('../../content/6524868416357.jpg', 'pre6524868416357_'.time().'.jpg', $img_pre_max_h, $img_pre_max_w))
  56.     //echo 'Для изображения создано превью!';
  57.   //else
  58.     //echo 'Для изображения НЕ создано превью!';
  59.  
  60. ?>

Например, чтобы изображение уменьшалось, пока не станет допустим меньше 320 на 240
 
 Top
Ыыы
Отправлено: 31 Июля, 2008 - 15:00:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


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




Блин, когда я запускаю пример выше, справа и слева у картинки образуются белые края. Как избежать их появления?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB