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
Форумы портала PHP.SU :: Версия для печати :: Скрипт не обрабатывает картинку
Форумы портала PHP.SU » PHP » Программирование на PHP » Скрипт не обрабатывает картинку

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

1. Гималайский дядька - 31 Января, 2011 - 13:17:17 - перейти к сообщению
Проблема в следующем:

Есть скрипт, который выполняет сканирование .gif. Если картинку загрузить с сайта и обработать скриптом, то ничего не происходит. Но если открыть картинку в Paint и сохранить, то скрипт работает.

В чем может быть дело?
2. OrmaJever - 31 Января, 2011 - 13:25:39 - перейти к сообщению
дело может быть в том что мы скрипта не видем...
3. Гималайский дядька - 31 Января, 2011 - 13:58:34 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $gdpart1 = array_merge($gd00,$gd01,$gd02,$gd03,$gd04,$gd05,$gd06,$gd07);
4. broshurkaplus - 31 Января, 2011 - 14:43:05 - перейти к сообщению
возможно просто создать пустую картинку с белым фоном, потом скопировать туда исходную, а потом применить сравнение..
(сам также накладывал логотип на картинки, не работало без фона)
5. Гималайский дядька - 31 Января, 2011 - 15:10:14 - перейти к сообщению
Было:

PHP:
скопировать код в буфер обмена
  1. $part1 = imagecreatefromgif("file_x.gif");
  2.  
  3.  
  4.     $im = imagecreatetruecolor(8, 10);
  5.     imagecopy($im, $part1, 0, 0, 0, 3, 8, 10);
  6.  
  7.     for ($j = 0; $j <= 9; $j++)
  8.     {
  9.  
  10.         if (imagecolorat($im, 0, $j) != 16777215)
  11.             $gd00[$j] = 1;
  12.         else
  13.             $gd00[$j] = 0;
  14.  
  15.     }
Стало:
PHP:
скопировать код в буфер обмена
  1.  
  2. $im = imagecreatetruecolor(8, 10);
  3.    
  4.     $white = imagecolorallocate($im, 255, 255, 255);
  5.     imagefill($im, 0, 0, $white);
  6.    
  7.     imagecopy($im, $part1, 0, 0, 0, 3, 8, 10);
  8.  
  9.     for ($j = 0; $j <= 9; $j++)
  10.     {
  11.  
  12.         if (imagecolorat($im, 0, $j) == 0)
  13.             $gd00[$j] = 1;
  14.         else
  15.             $gd00[$j] = 0;
  16.  
  17.     }

теперь все работает, спасибо
6. JustUserR - 31 Января, 2011 - 19:20:22 - перейти к сообщению
Гималайский дядька пишет:
Если файл загрузить с сервера, то выдает один и тот же неправильный результат, но если открыть его Paint'ом, сохранить под тем же именем, то начинает работать
Возможной причиной осуществления некорректного функционирования первоначальной версии PHP-приложения генерации изображения является использование шаблонного графического объекта gif-формата позволяющего включать определение програчных областей - поэтому в качестве возможного варианта решения указанной задачи допустима установка параметра прочрачного цвета для неопределенного в текущей палитре элемента

 

Powered by ExBB FM 1.0 RC1