[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт не обрабатывает картинку
Гималайский дядька
Проблема в следующем:

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

В чем может быть дело?



Спустя 7 минут, 47 секунд (31.01.2011 - 14:22) Evilsoul написал(а):
а где скрипт? который
Цитата
выполняет сканирование .gif. Если картинку загрузить с сайта и обработать скриптом, то ничего не происходит. Но если открыть картинку в Paint и сохранить, то скрипт работает.

Спустя 36 минут, 16 секунд (31.01.2011 - 14:59) Гималайский дядька написал(а):
$zero0 = array(0,0,0,1,1,1,1,0,0,0); 
$zero1 = array(0,0,1,1,1,1,1,1,0,0);
$zero2 = array(0,1,1,0,0,0,0,1,1,0);
$zero3 = array(1,1,0,0,0,0,0,0,1,1);
$zero4 = array(1,1,0,0,0,0,0,0,1,1);
$zero5 = array(0,1,1,0,0,0,0,1,1,0);
$zero6 = array(0,0,1,1,1,1,1,1,0,0);
$zero7 = array(0,0,0,1,1,1,1,0,0,0);

$zero = array_merge($zero0,$zero1,$zero2,$zero3,$zero4,$zero5,$zero6,$zero7);

$part1 = imagecreatefromgif("file_x.gif");


$im = imagecreatetruecolor(8, 10);
imagecopy($im, $part1, 0, 0, 0, 3, 8, 10);

for ($j = 0; $j <= 9; $j++)
{

if (imagecolorat($im, 0, $j) != 16777215)
$gd00[$j] = 1;
else
$gd00[$j] = 0;

}
...
similar_text(implode(" ",$zero), implode(" ",$gdpart1), $percent10);
...

$percent1 = array($percent10, $percent11, $percent12, $percent13, $percent14, $percent15, $percent16, $percent17, $percent18, $percent19);
print_r($percent1);
...

$max1=max($percent1);
...

if($max1==$percent10){
echo ('0');
}elseif($max1==$percent11){
echo ('1');
}elseif($max1==$percent12){
echo ('2');
}elseif($max1==$percent13){
echo ('3');
}elseif($max1==$percent14){
echo ('4');
}elseif($max1==$percent15){
echo ('5');
}elseif($max1==$percent16){
echo ('6');
}elseif($max1==$percent17){
echo ('7');
}elseif($max1==$percent18){
echo ('8');
}elseif($max1 < 40){
echo (' ');
}else {
echo ('9');}

скрипт переводит картинку в массив чисел 0 и 1 и сравнивает с шаблоном сверху, выдает процентное соотношение и максимальное сходство выдает в echo.
Если файл загрузить с сервера, то выдает один и тот же неправильный результат, но если открыть его Paint'ом, сохранить под тем же именем, то начинает работать.

Спустя 1 минута, 24 секунды (31.01.2011 - 15:00) Evilsoul написал(а):
код подсвети

Спустя 6 минут, 49 секунд (31.01.2011 - 15:07) Гималайский дядька написал(а):
сейчас открыл файл photoshop'ом, и кажется понял в чем проблема:

на оригинале нет фона, а после сохранения в Paint, прозрачные пиксели становятся белыми...

как закрасить их программно?

Спустя 8 минут, 20 секунд (31.01.2011 - 15:15) Evilsoul написал(а):
imagecreatetruecolor красит, только в черный, а для того что бы в белый используй imagefill()
код подсвети

Спустя 54 минуты, 12 секунд (31.01.2011 - 16:09) Гималайский дядька написал(а):
Было:

$part1 = imagecreatefromgif("file_x.gif"); 


$im = imagecreatetruecolor(8, 10);
imagecopy($im, $part1, 0, 0, 0, 3, 8, 10);

for ($j = 0; $j <= 9; $j++)
{

if (imagecolorat($im, 0, $j) != 16777215)
$gd00[$j] = 1;
else
$gd00[$j] = 0;

}


Стало:

$im = imagecreatetruecolor(8, 10);

$white = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $white);

imagecopy($im, $part1, 0, 0, 0, 3, 8, 10);

for ($j = 0; $j <= 9; $j++)
{

if (imagecolorat($im, 0, $j) == 0)
$gd00[$j] = 1;
else
$gd00[$j] = 0;

}

теперь все работает, спасибо

Спустя 28 минут, 52 секунды (31.01.2011 - 16:38) Evilsoul написал(а):
пожалуйста, не забывай код подсвечивать !
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.