[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив или потоковое считывание
Страницы: 1, 2, 3
Zzepish
У меня скрипт долго читает возможные комбинации, и ищет правильный ответ (по штих-коду). Штрих-коды бывают разных сложностей, однако мой скрипт должен читать изображения любого качества.
И я задумался- это же все время.
И я ищу пути оптимизации- быстрей будет, если я сначала занесу данные в многомерный массив, а потом буду читать от туда, или считывать строки с самого изображения?
Zzepish
Up rolleyes.gif
killer8080
Zzepish
думаю лучше использовать массивы
Zzepish
killer8080
Благодарю. А хотя- чего я спрашиваю- можно же проверить biggrin.gif
I++
Через GD работаешь? Если да, то она медленная smile.gif Я как то писал конвертер из png -> mp3 mp3 -> png, достаточно медленная операция, надежней конвертить в bmp формат, а потом unpack'ом структуру получить и по ней бегать.

Во laugh.gif

Свернутый текст
http://img580.imageshack.us/img580/8489/javazone.png


Просто вот для интересу http://ru.wikipedia.org/wiki/Piet
Zzepish
I++
конечно с GD2)))
А других и не знаю smile.gif
Но блин, мой алгоритм на php скорей - всего заблокируют- медленно думает. Надо будет писать на java)
I++
конверь все в bmp, а потом унпаком структуру хавай и парсь, быстрее GD будет
Zzepish
I++
да? а как он мне оттенки преобразует? мне нужно строку вывести в виде едениц и нулей. Причем черное-
$r<=70 $g<=70 $b<=70, а все остальное- ноль
Zzepish
I++
изображение изначально в шестнадцатиричной системе? т.е. в начале задавать h?
I++
user posted image

Не вижу проблемы. Вот тут картинка с цветами 111, 303030,707070
Zzepish
I++
хм, надо будет помудрить! Судя по всему- это то, что мне надо!
Так будет быстрей, чем через GD?
I++
Смотря как ты с GD работаешь )
Zzepish
I++
Вот так)
<form method="post" enctype="multipart/form-data">
<
input type="file" name="image"><br>
<
input type="submit" name="btn">
</
form>
<?php
set_time_limit(180);
include 'lib.php';

if(isset($_POST['btn'])){

$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);
///echo '<pre>'.print_r($_FILES,1).'</pre>';
imagefilter($im,IMG_FILTER_GRAYSCALE);


for($pix=10;$pix<=80;$pix++){
$res='';
for($i=0;$i<=imagesx($im)-1;$i++){

$rgb = imageColorAt($im, $i, imagesy($im)/2);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

///echo $r.' '.$g.' '.$b.'<br>';

if($r<$pix && $g<$pix && $b<$pix) $res.='1';

else $res.='0';

}


$res=preg_replace('/^[0]+|[0]+$/','',$res);

preg_match_all('/[0]+|[1]+/',$res,$res2);

$str_s=strlen($res2[0][0]);

for($zze=0;$zze<=10;$zze++){

$str_g=round($str_s/2)+$zze;

for($show=0;$show<count($res2[0]);$show++){

$result[0][$show]=substr($res2[0][$show],0, round(strlen($res2[0][$show])/$str_g));


}
$check1=$result[0][0].$result[0][1].$result[0][2];

if(preg_match('/^11000011/',$check1) && preg_match('/11000011$/',implode('',$result[0]))){

///echo $str_s.'+'.round($str_s/2).'+'.$zze.'<br>';
//echo implode('',$result[0]).'<br>';

$res_show=implode('',$result[0]);

deconvert($res_show);

break;

}
else 'Резузьтат плохой!!! <br>'.deconvert(implode('',$result[0]));

if(isset($s)) break;

}


if(isset($s)) break;
}
}

imagepng($im,'hard_test.png');
?>
Быстрый ответ:

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