PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 5
kireyev Отправлено: 10 Декабря, 2013 - 15:33:24 • Тема: imagick svg и ошибка чтения/записи на хостинге • Форум: Графика в PHP

Ответов: 4
Просмотров: 3375
Ну собственно, чтобы не спорить, прикрепляю svg тут
kireyev Отправлено: 10 Декабря, 2013 - 15:28:43 • Тема: imagick svg и ошибка чтения/записи на хостинге • Форум: Графика в PHP

Ответов: 4
Просмотров: 3375
Мелкий пишет:
Спойлер (Отобразить)


Никакого svg по ссылке.

Однако:
kireyev Отправлено: 10 Декабря, 2013 - 12:37:41 • Тема: imagick svg и ошибка чтения/записи на хостинге • Форум: Графика в PHP

Ответов: 4
Просмотров: 3375
Есть такой код:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $im = new Imagick();
  3. $svg = file_get_contents("/www/presentp/users/presentp-new/www/htdocs/tuborg.svg");
  4. $im->readImageBlob($svg);
  5. $im->setImageFormat("png24");
  6. header("Content-Type: image/png");
  7. echo $im;
  8. ?>

Выдает такую ошибку:

Fatal error: Uncaught exception 'ImagickException' with message 'unable to open file `/var/tmp/magick-qidstAgw': No such file or directory @ error/constitute.c/ReadImage/571' in /www/presentp/users/presentp-new/www/htdocs/index.php:4 Stack trace: #0 /www/presentp/users/presentp-new/www/htdocs/index.php(4): Imagick->readimageblob('<?xml version="...') #1 {main} thrown in /www/presentp/users/presentp-new /www/htdocs/index.php on line 4

Если формат svg сменить на другой (пробовал png, jpg, eps) - то все работает. Не могу понять что за проблема. (ссылки удалены как потенциально опасные)
kireyev Отправлено: 30 Сентября, 2011 - 09:17:56 • Тема: Определение размера части изображения (размер заливки) • Форум: Графика в PHP

Ответов: 1
Просмотров: 1786
Имеется множество изображений размером 1000*1000px, на которых изображены различные силуэты черным цветом (RGB: 0 0 0), остальная часть изображения - прозрачна (можно сделать белую...это не суть).
Требуется определить размер силуэта (x,y) на картинке. Как это можно сделать?

Вот решение:
PHP:
скопировать код в буфер обмена
  1.  
  2. $src = imagecreatefrompng("picture.png");
  3. $size_left=1000;
  4. $size_right=0;
  5. $size_top=1000;
  6. $size_bottom=0;
  7. for ($y=0; $y<1000; $y++) {
  8.         for ($x=0; $x<1000; $x++) {    
  9.                 if (imagecolorat($src,$x,$y) == 0) {
  10.                         if ($y < $size_top) { $size_top = $y; }
  11.                         if ($y > $size_bottom) { $size_bottom = $y; }
  12.                         if ($x < $size_left) { $size_left = $x; }
  13.                         if ($x > $size_right) { $size_right = $x; }
  14.                 }
  15.         }
  16. }
  17. echo $width = $size_right-$size_left." x ";
  18. echo $height = $size_bottom-$size_top." px";
  19.  


Надеюсь кому-нибудь пригодится. На локальном сервере работает достаточно быстро, хоть и перебирает на условия 1 000 000 вариантов)
kireyev Отправлено: 22 Декабря, 2010 - 08:15:29 • Тема: Не пойму логики, пропадают промежуточные значения в конструкции if • Форум: Программирование на PHP

Ответов: 3
Просмотров: 284
CODE (htmlphp):
скопировать код в буфер обмена
  1. <? if (mysql_num_rows($sql_portfolio)>0) { ?><div id="img_line"><? } ?>
  2. <? while ($portfolio = mysql_fetch_array($sql_portfolio) AND $portfolio['order'] < 5) { echo $portfolio['order']; ?>
  3. <a href="/portfolio/<? echo $portfolio['filename']; ?>" rel="<? echo $portfolio['rel']; ?>" onclick="return jsiBoxOpen(this)" title="<? echo $portfolio['title']; ?>"><img src="/portfolio/<? echo $portfolio['filename']; ?>" width="151" height="100" alt="<? echo $portfolio['title']; ?>" /></a><? } ?>
  4. <? if (mysql_num_rows($sql_portfolio)>0) { ?></div><? } ?>
  5.  
  6. <? if (mysql_num_rows($sql_portfolio)>4) { ?><div id="img_line"><? } ?>
  7. <? while ($portfolio = mysql_fetch_array($sql_portfolio) AND $portfolio['order'] > 4 AND $portfolio['order'] < 9) { echo $portfolio['order']; ?>
  8. <a href="/portfolio/<? echo $portfolio['filename']; ?>" rel="<? echo $portfolio['rel']; ?>" onclick="return jsiBoxOpen(this)" title="<? echo $portfolio['title']; ?>"><img src="/portfolio/<? echo $portfolio['filename']; ?>" width="151" height="100" alt="<? echo $portfolio['title']; ?>" /></a><? } ?>
  9. <? if (mysql_num_rows($sql_portfolio)>4) { ?></div><? } ?>
  10.  
  11. <? if (mysql_num_rows($sql_portfolio)>8) { ?><div id="img_line"><? } ?>
  12. <? while ($portfolio = mysql_fetch_array($sql_portfolio) AND $portfolio['order'] > 8) { echo $portfolio['order']; ?>
  13. <a href="/portfolio/<? echo $portfolio['filename']; ?>" rel="<? echo $portfolio['rel']; ?>" onclick="return jsiBoxOpen(this)" title="<? echo $portfolio['title']; ?>"><img src="/portfolio/<? echo $portfolio['filename']; ?>" width="151" height="100" alt="<? echo $portfolio['title']; ?>" /></a><? } ?>
  14. <? if (mysql_num_rows($sql_portfolio)>8) { ?></div><? } ?>

Всего значений в БД 12 штук. 5 и 9 не выводятся на страницу. Почему?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB