Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сравнить содержание картинки?
 
 автор: BArt Simpson   (10.12.2006 в 18:00)   письмо автору
 
 

1. Как сравнить содержание картинки? Скрипт тянет с ресурса картинки товаров по коду, но есть изображения с текстом 'нет фото' как проверить и не загружать эти картинки?

2. На большой картинке с белым фоном изображени товара по середине, но оно слишком маленькое и после создания превюшки там нифига не видно, можно ли определить размер изображения товара и отрезать лишнее пустое пространство?

   
 
 автор: Trianon   (10.12.2006 в 18:10)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 18:00)
 

А они разные чтоли?
Неужели даже хеши (md5()) не совпадают?

   
 
 автор: BArt Simpson   (10.12.2006 в 18:33)   письмо автору
 
   для: Trianon   (10.12.2006 в 18:10)
 

а как проверить хеши?

   
 
 автор: Trianon   (10.12.2006 в 18:40)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 18:33)
 

а как Вы затягиваете и сохраняете файл с картинкой?
И как Выглядит картинка "Нет фотографии"?

   
 
 автор: BArt Simpson   (10.12.2006 в 18:44)   письмо автору
 
   для: Trianon   (10.12.2006 в 18:40)
 

http://forum3.ru/pick_image.aspx?&code=27490


а так затягивается

<?
        $source_img 
"http://forum3.ru/pick_image.aspx?&code=".$strtmp[$i];
        if (isset(
$source_img)) 
            { 
            
$fna $strtmp[$i];
            
$fname $fna.".jpg";
            
$handle fopen ($source_img'rb'); 
            if(!
$handle
                { 
                echo 
"Не могу открыть исходный файл!<br><b class=red>".$fname."</b>"
                } 
            
$handle_write = @fopen ($put.'/img/'.$fname'wb'); 
            if(!
$handle_write
                { 
                echo 
"Не могу создать файл!<br><b class=green>".$fname."</b>"
                }        
            while (!
feof($handle)) 
                { 
                
fwrite($handle_writefread($handle8192)); 
                } 
            
fclose($handle_write); 
            
fclose ($handle); 
            echo 
"<br><b class=green>".$fname."</b>"
?>

   
 
 автор: Trianon   (10.12.2006 в 18:52)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 18:44)
 

if(md5($file) == "57bc3ca657695cbb1bf76691a5229a8b")
// нет фотографии.

   
 
 автор: BArt Simpson   (10.12.2006 в 18:56)   письмо автору
 
   для: Trianon   (10.12.2006 в 18:52)
 

те в коде это так


<? 
        $source_img 
"http://forum3.ru/pick_image.aspx?&code=".$strtmp[$i]; 
        if (isset(
$source_img))  
            {  
            
$fna $strtmp[$i]; 
            
$fname $fna.".jpg"
            
$handle fopen ($source_img'rb');    
            if(
md5($handle) == "57bc3ca657695cbb1bf76691a5229a8b")
                {
                echo
"нет изображения";
                }
            if(!
$handle)  
                {  
                echo 
"Не могу открыть исходный файл!<br><b class=red>".$fname."</b>";  
                }  
            
$handle_write = @fopen ($put.'/img/'.$fname'wb');  
            if(!
$handle_write)  
                {  
                echo 
"Не могу создать файл!<br><b class=green>".$fname."</b>";  
                }         
            while (!
feof($handle))  
                {  
                
fwrite($handle_writefread($handle8192));  
                }  
            
fclose($handle_write);  
            
fclose ($handle);  
            echo 
"<br><b class=green>".$fname."</b>";  
?> 


   
 
 автор: Trianon   (10.12.2006 в 19:03)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 18:56)
 

Нет. Как у Вас - не выйдет.

   
 
 автор: Trianon   (10.12.2006 в 19:02)   письмо автору
 
   для: Trianon   (10.12.2006 в 18:52)
 

Если хочется аккуратно, то так:

            $handle = fopen ($source_img, 'rb');
            if(!$handle)
                {
                echo "Не могу открыть исходный файл!<br><b class=red>".$fname."</b>";
                }
            $part = fread($handle, 8192);
            if(strlen($part) == 5086 && md5($part) == "57bc3ca657695cbb1bf76691a5229a8b")
            {
                echo "товар еще фотографируется";
            }
            else
            {
              $handle_write = @fopen ($put.'/img/'.$fname, 'wb');
              if(!$handle_write)
                {
                echo "Не могу создать файл!<br><b class=green>".$fname."</b>";
                }
              do fwrite($handle_write, $part);
              while(($part=fread($handle, 8192)) != 0);
              fclose($handle_write);
          }
            

   
 
 автор: BArt Simpson   (10.12.2006 в 19:14)   письмо автору
 
   для: Trianon   (10.12.2006 в 19:02)
 

parse error, unexpected '{' in /pub/home/royalart/test/index.php on line 77
это типа

77 {
78 echo "товар еще фотографируется";
79 }

   
 
 автор: Trianon   (10.12.2006 в 19:26)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 19:14)
 

Ага. Действительно, скобку пропустил. Надо поправить.

   
 
 автор: BArt Simpson   (10.12.2006 в 19:33)   письмо автору
 
   для: Trianon   (10.12.2006 в 19:26)
 

Чёта заработало, но не так как надо =))

   
 
 автор: BArt Simpson   (10.12.2006 в 21:07)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 19:33)
 

Разобрался!!! большое спасибо за наводку ;)

   
 
 автор: Unkind   (10.12.2006 в 18:10)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 18:00)
 

1. Можно с помощью md5_file().

P.S. Хм...Опоздал

   
 
 автор: Trianon   (10.12.2006 в 18:13)   письмо автору
 
   для: Unkind   (10.12.2006 в 18:10)
 

_file как раз не при делах - захочется, вероятно, отфильтровать мусор еще до создания файла. :)

   
 
 автор: Trianon   (10.12.2006 в 18:17)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 18:00)
 

2. довольно ресурсоемкая процедура.
Придется идти в цикле функцией imagecolorat() и проверять пиксели на цвет.

   
 
 автор: BArt Simpson   (10.12.2006 в 18:37)   письмо автору
 
   для: Trianon   (10.12.2006 в 18:17)
 

а если начинать с $x = 40 и по $y пройтись вниз, если все белые то шаг по х +20 если есть не белые то -20 по и -20 по У и тоже самое с другой стороны?

и будели md5_file() работать по url?

   
 
 автор: Trianon   (10.12.2006 в 18:42)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 18:37)
 

В принципе - Вы правы. Можно сперва сделать разреженный проход, а потом уточнить границы. Но тут можно напороться на сбои. Ведь разреженные пробы могут случайно попасть на белые места картинки. Что тогда?

   
 
 автор: BArt Simpson   (10.12.2006 в 18:49)   письмо автору
 
   для: Trianon   (10.12.2006 в 18:42)
 

я сомневаюсь что на такова плана фото могут быть разряжонности http://forum3.ru/pick_image.aspx?&code=35426

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования