Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Исследование защиты программы Advanced JPEG Compressor

13.01.2011 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы Advanced JPEG Compressor

Программа Advanced JPEG Compressor предназначена для оптимизации изображений, изменения размеров, повышения резкости, а также для выполнения многих других операций над картинками, в том числе и в режиме пакетной обработки. Важно, что все действия выполняются без значительной потери качества. Очень неплохая альтернатива тяжеленным графическим редакторам, особенно когда надо быстро подправить большое количество фотографий. Но стоимость лицензии колеблется от 35 до 1500 баксов, хотя единственно допустимая цена любой программы - это 0 (прописью: НОЛЬ) в любой валюте.

Читать статью целиком »
Просмотров: 6498 | Комментариев: 24

Исследование защиты программы Flagimation

15.12.2010 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы Flagimation

Программа Flagimation предназначена для создания красивых анимированных GIF-картинок в виде развевающегося флага. Интерфейс простейший, настройки тоже. Открываете картинку, которую хотите превратить во флаг, выбираете параметры качества и скорости анимации, после этого сохраняете готовый GIF. И все это за 20 баксов, ага.

Читать статью целиком »
Просмотров: 8552 | Комментариев: 11

Делаем быстрые и красивые превьюшки

02.12.2010 | Категория: Web-мастеру и не только | Автор: ManHunter
При работе с графикой, а именно при создании различных онлайн-галерей, при работе с прикрепленными к статьям файлами в CMS, требуется создание так называемых превьюшек - пропорционально уменьшенных копий изображений. Они могут создаваться динамически или храниться на диске в виде отдельных файлов, все зависит от конкретной задачи. Рассмотрим несколько способов создания превьюшек и сравним их производительность.


Сравнение способов создания превьюшек

Для тестов была взята фотография размером 3468 х 2736 пикселов, глубина цветности 24 бита. Цель - разными способами сделать из нее превьюшку размером 200 x 150 пикселов и сохранить результат в файл JPG с наилучшим качеством. Тестовые фрагменты кода максимально облегчены, все размеры и названия файлов захардкодены прямо в исходники. Время выполнения тестов и объем занятой памяти соответствуют моему ноутбуку, эти значения приведены только для сравнения, так что не удивляйтесь, если ваши цифры будут отличаться.

Читать статью целиком »
Просмотров: 8280 | Комментариев: 3

Исследование защиты программы JPEG Imager

03.05.2010 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы JPEG Imager

JPEG Imager от V-Methods Software - небольшая удобная программа для оптимизации графических файлов в формате JPEG, PNG и GIF. В ней собраны все основные инструменты, необходимые для работы с графикой: удаление шумов, изменение размера, корректировка цветности, контраста, яркости и т.д. Все управление интуитивно понятное. Конечно, все эти функции есть в серьезных графических пакетах типа Photoshop, но не всегда хочется запускать тяжеленный софт ради несложных корректировок изображения. Тут-то и окажется полезной программа JPEG Imager. Но как обычно все омрачается необходимостью расстаться с некоторой суммой денег за регистрацию.

Читать статью целиком »
Просмотров: 5246 | Комментариев: 15

Нанесение графических водяных знаков на изображение

13.07.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Наносить текстовые надписи на картинки средствами PHP мы уже умеем. Теперь рассмотрим как делать то же самое, только на этот раз вместо текста будет графический маркер. Сам маркер представляет собой картинку в формате PNG-8 (глубина цвета - 8 бит), допускается прозрачность и произвольная форма. Если маркер будет с другой глубиной цвета, то при наложении прозрачный цвет будет заменен на черный. Другой формат маркеров не поддерживается! Файл PNG определяется по расширению, можно анализировать внутреннюю структуру, но это, наверное, в данном случае лишнее и остается на совести вебмастера.
  1. //-------------------------------------------------------------------
  2. // Функция нанесения графического водяного знака на изображение
  3. // Copyright (C) ManHunter / PCL
  4. // http://www.manhunter.ru
  5. //-------------------------------------------------------------------
  6. // Параметры вызова:
  7. // $picture - путь к файлу картинки на сервере
  8. // $marker - путь к файлу водяного знака на сервере
  9. // $opacity - процент прозрачности
  10. // $watermark_position - положение водяного знака на картинке
  11. //-------------------------------------------------------------------
  12.  
  13. // Константы положения водяного знака на картинке
  14. define ("WATERMARK_LEFT_BOTTOM",0);
  15. define ("WATERMARK_LEFT_TOP",1);
  16. define ("WATERMARK_RIGHT_BOTTOM",2);
  17. define ("WATERMARK_RIGHT_TOP",3);
  18. define ("WATERMARK_CENTER",4);
  19.  
  20. function Watermark_PNG_Image($picture$marker$opacity=100,
  21.                            $watermark_position=WATERMARK_RIGHT_BOTTOM) {
  22.   // Проверки на наличие файлов и допустимые параметры
  23.   if (!file_exists($picture)) { return false; }
  24.   if (!file_exists($marker)) { return false; }
  25.  
  26.   // Получить размеры исходного изображения
  27.   list ($sx,$sy)=GetImageSize($picture);
  28.   if ($sx==|| $sy==0) { return false; }
  29.  
  30.   // Получить размеры маркера
  31.   list ($mx,$my)=GetImageSize($marker);
  32.   if ($mx==|| $my==|| $sx<($mx+20) || $sy<($my+20)) { return false; }
  33.  
  34.   // Если расширение маркера не .PNG, то выход с ошибкой
  35.   if (strtolower(substr($marker,-4))!=".png") { return false; }
  36.  
  37.   // Если расширения нет, то выход с ошибкой
  38.   $pocket=Array();
  39.   eregi("\.([a-z]*)$",$picture,$pocket);
  40.   if ($pocket[1]=="") { return false; }
  41.  
  42.   // На основании расширения создать картинку
  43.   switch (strtolower($pocket[1])) {
  44.     case "jpeg":
  45.     case "jpg": {
  46.       if (!$im=@ImageCreateFromJpeg($picture)) { return false; }
  47.       break;
  48.     }
  49.     case "gif": {
  50.       if (!$im=@ImageCreateFromGif($picture)) { return false; }
  51.       break;
  52.     }
  53.     case "png": {
  54.       if (!$im=@ImageCreateFromPng($picture)) { return false; }
  55.       break;
  56.     }
  57.     default: { return false; }
  58.   }
  59.  
  60.   // Получить координаты блока на картинке для нанесения надписи
  61.   switch ($watermark_position) {
  62.     case WATERMARK_LEFT_BOTTOM: {
  63.       $pos_x=10;
  64.       $pos_y=$sy-$my-10;
  65.       break;
  66.     }
  67.     case WATERMARK_RIGHT_BOTTOM: {
  68.       $pos_x=$sx-$mx-10;
  69.       $pos_y=$sy-$my-10;
  70.       break;
  71.     }
  72.     case WATERMARK_LEFT_TOP: {
  73.       $pos_x=10;
  74.       $pos_y=10;
  75.       break;
  76.     }
  77.     case WATERMARK_RIGHT_TOP: {
  78.       $pos_x=$sx-$mx-10;
  79.       $pos_y=10;
  80.       break;
  81.     }
  82.     case WATERMARK_CENTER: {
  83.       $pos_x=intval($sx/2-$mx/2);
  84.       $pos_y=intval($sy/2-$my/2);
  85.       break;
  86.     }
  87.     default: {
  88.       imageDestroy($im);
  89.       return false;
  90.     }
  91.   }
  92.  
  93.   // Нанести водяной знак с нужной прозрачностью
  94.   $watermark=@ImageCreateFromPng($marker);
  95.   ImageCopyMerge($im$watermark$pos_x$pos_y00$mx$my$opacity);     
  96.   ImageDestroy($watermark);
  97.  
  98.   // Записать измененный файл на место
  99.   switch (strtolower($pocket[1])) {
  100.     case "jpeg":
  101.     case "jpg": {
  102.       ImageJPEG($im,$picture,90);
  103.       break;
  104.     }
  105.     case "gif": {
  106.       ImageGIF($im,$picture);
  107.       break;
  108.     }
  109.     case "png": {
  110.       ImagePNG($im,$picture);
  111.       break;
  112.     }
  113.   }
  114.   ImageDestroy($im);
  115.   return true
  116. }
Параметры вызова функции: $picture - полный путь к файлу на сервере, поддерживаются форматы JPG, GIF, PNG. Файл должен быть доступен для записи, так как после нанесения водяного знака он будет перезаписан с тем же именем. $marker - полный путь к файлу водяного знака в формате PNG. $opacity - прозрачность водяного знака в процентах, необязательный параметр, по умолчанию 100%. $watermark_position - положение маркера на картинке, необязательный параметр, по умолчанию правый нижний угол изображения. Доступные значения определены константами, прочие значения игнорируются: 0 - левый нижний угол, 1 - левый верхний угол, 2 - правый нижний угол (значение по умолчанию), 3 - правый верхний угол, 4 - центр изображения.

Читать статью целиком »
Просмотров: 9301 | Комментариев: 13

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 3 (0.0062 сек.) / Память: 4.5 Mb
Наверх