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 :: Версия для печати :: пустое изображение [2]
Форумы портала PHP.SU » » Графика в PHP » пустое изображение

Страниц (4): « 1 [2] 3 4 »
 

16. JustUserR - 08 Марта, 2011 - 16:48:31 - перейти к сообщению
SAD пишет:
В этом случае удаляться ничего не должно
рэгэкспешники помогайте)
Для осуществления решения предполагаемой задачи, допустимо использование средств XML-анализаторов элементов целевого документа, позволяющих обеспечить поиск вложенных объектов по указанному критерию, в качестве которого может использоваться как значения информационных полей, так и параметр относительно пути расположения элемента
17. SAD - 08 Марта, 2011 - 19:28:17 - перейти к сообщению
ALEN пишет:
Сделал я готовое решение, думаю должно подойти

я так около 1000 изображений должен проверить)
я думаю поискать закономерности, как JustUserR сказал c позиционированием. Но от помощи еще не отказуюсь
18. ALEN - 08 Марта, 2011 - 20:23:27 - перейти к сообщению
SAD
Так и не пойму в чем проблема такого способа. Пустое изображение, даже с очень нереально большим разрешением будет весить несколько килобайт и после сразу удаляться. :

PHP:
скопировать код в буфер обмена
  1. $img='1.png'; // файл который проверяем
  2. function img_clean($img,$tmpdir=''){
  3. $tmpimg=$tmpdir.time().rand(111111,999999).".png";  // временный файл для теста
  4. $imglogo=new cms_img;
  5. $imglogo->load($img);  // загружаем картинку
  6. $sxy=$imglogo->sxy();  // получаем размеры проверяемой картинки
  7. $imglogo->create($sxy['w'],$sxy['h'],"#ffffff");  // Создаем картинку с такими же размерами, только чистую
  8. $imglogo->save($tmpimg); // Сохраняем временное изображение
  9. $imglogo->destroy();
  10. if(filesize($tmpimg)<filesize($img)){  unlink($tmpimg); return 1;  } else { unlink($tmpimg); return 0; }
  11. }
  12.  
  13. if(img_clean($img,'')==0){
  14. $string=preg_replace("наша картинка удаляется тут","",$string);
  15. }


Ты вообще вникнул в идею?

Кстати если картинка залита другим фоном, то вес изображения идет вниз, редко поднимается и если поднимается то только на несколько байт, например:
$imglogo->create(350,350,"#ffffff"); = 1095 байт
$imglogo->create(350,350,"#0fa000"); = 1096 байт - зеленый
$imglogo->create(350,350,"#000000"); = 436 байт
$imglogo->create(350,350,"#a00d00"); = 1096 байт - красный
$imglogo->create(2350,2350,"#000000"); = 16185 байт
$imglogo->create(2350,2350,"#a00d00"); = 21398 байт - но думаю таких огромных изображений у тебя нет, да даже если есть, то оно быстро обрабатывается и освобождает место и память


А позиционирование:
SAD пишет:
так ведь есть случаи когда просто идут в подряд 2 картинки "нормальные" - порежу не то что надо
19. SAD - 09 Марта, 2011 - 07:50:30 - перейти к сообщению
вот удалю я это изображение, но путь на само изображение у меня в html все равно прописан. вместо пустого изображения будет иконка недоступности.
20. ALEN - 09 Марта, 2011 - 20:53:22 - перейти к сообщению
SAD
От чего там будет недоступность? Удаляй по регулярке не нужный блок с изображением.

P.S. Что с тобой? Последствия праздников?
21. SAD - 09 Марта, 2011 - 21:19:18 - перейти к сообщению
ALEN пишет:
От чего там будет недоступность? Удаляй по регулярке не нужный блок с изображением.

если я найду этот блок, то само изображение удалять не нужно будет))
так кто сможет регулярочку набросать на этот случай http://forum.php.su/topic.php?fo...93150#1299593150
22. ALEN - 09 Марта, 2011 - 21:32:58 - перейти к сообщению
SAD
Ты не можешь вникнуть или неправильно выражаешься, или я не правильно доношу.
Смотри, проверяешь чистое или нет изображение, если чистое, то удаляешь регуляркой лишний кусок кода, где твоя картинка чистая лежит.
23. SAD - 09 Марта, 2011 - 21:47:32 - перейти к сообщению
понял)
попробую применить
24. ALEN - 09 Марта, 2011 - 21:50:32 - перейти к сообщению
SAD

Вернулся? Голливудская улыбка
25. SAD - 09 Марта, 2011 - 22:29:05 - перейти к сообщению
В общем все оказалось еще проще. Размеры пустого файла(на самом деле это прозрачный gif) получались 1 на 1 px, после взятия размера изображения. Легко его отследить было
26. ALEN - 10 Марта, 2011 - 07:52:19 - перейти к сообщению
SAD
Ну вот...
27. SAD - 10 Марта, 2011 - 07:54:13 - перейти к сообщению
Правда интересно почему размеры 1 на 1 получались, хотя на самом деле размеры побольше. Походу стандартные функции не могут определить размер прозрачного gif
28. ALEN - 10 Марта, 2011 - 07:54:39 - перейти к сообщению
SAD пишет:
стандартные функции

это про какие ты?
29. SAD - 10 Марта, 2011 - 07:56:10 - перейти к сообщению
imagesx и imagesy
30. ALEN - 10 Марта, 2011 - 10:40:27 - перейти к сообщению
SAD
Ты наверное передаешь в imagesy адрес изображения?

PHP:
скопировать код в буфер обмена
  1. $imglogo=new cms_img;
  2. $imglogo->load($img);  // загружаем картинку
  3. $sxy=$imglogo->sxy();  // получаем размеры проверяемой картинки массивом с ключами h и w
  4.  
  5. /*
  6. $sxy['w'] - ширина картинки
  7. $sxy['h'] - высота картинки
  8. */

 

Powered by ExBB FM 1.0 RC1