Форумы портала PHP.SU » » Графика в PHP » пустое изображение

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

1. SAD - 08 Марта, 2011 - 12:12:26 - перейти к сообщению
возникла ситуация. есть doc файл с текстом и с изображениями.
пример.http://www[dot]imagepost[dot]ru/?v=727/scXpVnv[dot]png
я конвертирую doc в вебстраницу с фильтром и на выходе вместо этой одной картинки получаю 2.
почему 2 объясняет следующая картинкаhttp://www[dot]imagepost[dot]ru/?v=727/fVKgX1O[dot]png , если сдвинуть изображение, то оказывается что под ним есть еще одно без цвета. вопрос, как можно средствами php избавиться от оного?

з.ы. изображения легковесные
2. ALEN - 08 Марта, 2011 - 12:17:28 - перейти к сообщению
SAD
Ну так там по идее должен быть какой-то принцип вложенности, вот регуляркой и драть
3. DeepVarvar - 08 Марта, 2011 - 12:17:36 - перейти к сообщению
Т.е. в самом *.doc под картинку редакторы вставляют некую placeholder(solid)-область??
4. SAD - 08 Марта, 2011 - 12:20:38 - перейти к сообщению
могу приложить html часть этой сконвертированной хрени
CODE (html):
скопировать код в буфер обмена
  1. <span
  2. style='position:absolute;z-index:31;margin-left:0px;margin-top:0px;width:189px;
  3. height:77px'><img width=189 height=77 src="1.files/image236.gif"></span><span
  4. lang=EN-US><img width=189 height=76 src="1.files/image235.gif"></span>

1.files/image235.gif вот эта картинка пустая
5. ALEN - 08 Марта, 2011 - 12:23:59 - перейти к сообщению
SAD
Ну так по регулярке вторую режь при обработке
6. SAD - 08 Марта, 2011 - 12:25:18 - перейти к сообщению
так ведь есть случаи когда просто идут в подряд 2 картинки "нормальные" - порежу не то что надо
7. ALEN - 08 Марта, 2011 - 12:28:26 - перейти к сообщению
SAD
Ну тогда предложу проверять картинки, смотри сколько максимум пустышка весит и режь по весу например их.
8. SAD - 08 Марта, 2011 - 12:28:39 - перейти к сообщению
а можно ли определить как то что картинка без цвета - пустая?
(Добавление)
может быть один символ картинкой и весить меньше чем пустышка. я думал об этом
9. ALEN - 08 Марта, 2011 - 12:37:26 - перейти к сообщению
SAD
Самое простое будет, определение по размеру сколько примерно должна весить чистая картинка и удалять все, что ниже порога. Так как если ты нарисуешь одну линию на пустой картинке, то ее вес будет явно тяжелее, а если там что-о интересное нарисовано, но очень значительное будет увеличение веса картинки.
10. SAD - 08 Марта, 2011 - 12:40:48 - перейти к сообщению
я посмотрел размер пустой картинки, и картинки с буквой i - разница в 2 байта. Я думаю по весу не вариант резать
11. ALEN - 08 Марта, 2011 - 12:44:49 - перейти к сообщению
SAD
а у тебя есть картинки с буквой i ???
12. SAD - 08 Марта, 2011 - 12:52:51 - перейти к сообщению
мне дают doc я его перегоняю в html, парсю и загоняю в базу. я его сам не набираю
13. JustUserR - 08 Марта, 2011 - 15:59:12 - перейти к сообщению
SAD пишет:
Возникла ситуация. есть doc файл с текстом и с изображениями
Осуществление возникновения предполагаемого вопроса связано с выбором процесса интеграции графических объектов в целевой документ типа word, который может основываться на вариативных параметров в зависимости от области расположения и ассоциированного элемента во вложенном уровне трактования; приведенная схема интеграции графического объекта свидетельствует об осуществлении его относительного расположения в области документа, и резервирования области отображения на основании создания фонового пустого изображения; в качестве возможного варианта решения указанной задачи, возможно обеспеченя поиска элементов изображений во вложенном пути интеграции, для которых осуществляется статическое и относительное позиционирование соответственно, в определением стиля отображения реального времени, обеспечивающего наложения данных изображений
14. SAD - 08 Марта, 2011 - 16:05:50 - перейти к сообщению
я понял) проверю везде ли позиционирование участвует, где есть пустышки
(Добавление)
тогда возникает вопрос как удалить изображение, которое идет после span с абсолютным позиционированием. пример
CODE (html):
скопировать код в буфер обмена
  1. <span style='position:absolute;z-index:52;margin-left:0px;margin-top:0px;width:189px;height:77px'>
  2.     <img width=189 height=77 src="tu.files/image335.gif">
  3. </span>
  4. <img width=189 height=76 src="tu.files/image236.gif">

то есть нужно удалить 236 image
но учесть случай
CODE (html):
скопировать код в буфер обмена
  1. <span style='position:absolute;z-index:175;margin-left:-6px;margin-top:5px;width:8px;height:13px'>
  2.     <img width=8 height=13 src="tu.files/image748.gif">
  3. </span>
  4. <span style='position:relative;z-index:176'>
  5.     <span style='position:absolute;left:16px;top:-2px;width:10px;height:    13px'>
  6.         <img width=10 height=13 src="tu.files/image749.gif">
  7.     </span>
  8. </span>

в этом случае удаляться ничего не должно
рэгэкспешники помогайте)
15. ALEN - 08 Марта, 2011 - 16:44:56 - перейти к сообщению
Сделал я готовое решение, думаю должно подойти. На основе:
http://forum.php.su/topic.php?fo...35&topic=736

PHP:
скопировать код в буфер обмена
  1. <?PHP $namefile1="1.png"; // создаем чистый файл с таким именем
  2. $namefile2="2.png"; // файл с надписью с таким именем
  3. $imglogo=new cms_img;
  4. $imglogo->create(350,350,"#ffffff");
  5. $imglogo->save($namefile1);
  6. echo filesize($namefile1)."<br/>"; //1095
  7. $imglogo->create(350,350,"#ffffff");
  8. $im=$imglogo->returnimg();
  9. $text_color = imagecolorallocate ($im, 233, 14, 91);
  10. imagestring ($im, 1, 1, 1,"1", $text_color);   // рисуем очень маленькую цифру 1 в углу
  11. $imglogo->setimg($im);
  12. $imglogo->save($namefile2);
  13. echo filesize($namefile2)."<br/>";   // 1131
  14. $imglogo->destroy();
  15.  
  16. #Как вариант можешь вычислять размер картинки и создавать чистое изображение и смотреть будет ли разница.
  17.  
  18. $img='2.png'; // файл который проверяем
  19. $tmpimg=time().rand(111111,999999).".png";  // временный файл для теста
  20. $imglogo=new cms_img;
  21. $imglogo->load($img);  // загружаем картинку
  22. $sxy=$imglogo->sxy();  // получаем размеры проверяемой картинки
  23. $imglogo->create($sxy['w'],$sxy['h'],"#ffffff");  // Создаем картинку с такими же размерами, только чистую
  24. $imglogo->save($tmpimg); // Сохраняем временное изображение
  25. if(filesize($tmpimg)<filesize($img)){
  26. echo "Файл не чистый";
  27. } else {
  28. echo "Файл чистый";
  29. }
  30. $imglogo->destroy();
  31. unlink($tmpimg);
  32.  
  33. # При желании можешь к чистому изображению добавлять необходимое колличество байт, на всякий случай.

 

Powered by ExBB FM 1.0 RC1