Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Максимальный размер окружностей в PHP 
:(
    Опции темы
kuksha
Дата 3.12.2011, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



Здравствуйте. 
Столкнулся с тем, что при отрисовке окружностей и кругов диаметром более 2070 точек, вылезают искажения за пределами этой области. Код PHP такой:
Код

<?php
Header("Content-type: image/jpeg");
  $i = imageCreate(3010, 3010);
  $black = imageColorAllocate($i, 0, 0, 0);
  $green  = imageColorAllocate($i, 0, 255, 0);
imagefilledellipse($i, 1505, 1505, 3000, 3000, $green);
imageJpeg($i,'',50);
imageDestroy($i);
?>

А картинка, которая выводится этим кодом тут:
http://info-7.ru/Astro/3000.php
Вместо зелёного круга на чёрном поле - не пойми что...

Что делать? Нужны круги и дуги с диаметрами примерно 2600-3000 точек.

Это сообщение отредактировал(а) kuksha - 3.12.2011, 23:47
PM MAIL   Вверх
kuksha
Дата 5.12.2011, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



50 просмотров и тишина...
Я что-то не так спросил? 
Хоть попробуйте кто-нибудь у себя этот код - может только у меня так сбоит?

Кстати, в первой строке вместо  
$i = imageCreate(3010, 3010); 
можно поставить например 
$i = imageCreate(1000, 1000); 
чтобы не упереться в ограничение памяти. 
Результат всё равно такой же - круги и дуги рисуются с искажением...

PM MAIL   Вверх
$дмитрий
Дата 5.12.2011, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Запустить скрипт, результат тот же. В чем причина, не ясно. Мне один знакомый товарищ, который участвовал в разработке GD, рассказывал какие там используют кривые алгоритмы. Возможно внутренние ограничения самого imagefilledellipse. Как вариант, можно воспользоваться утилитой ImageMagic
PM MAIL   Вверх
kuksha
Дата 5.12.2011, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



ImageMagic только на перле использовал... это типа мини-фотошопа? 
Если да, то наверное не подойдёт - у меня карта звёздного неба динамически просчитывается, там координатная сетка нужна с большими радиусами при увеличениях карты...

Это сообщение отредактировал(а) kuksha - 5.12.2011, 20:29
PM MAIL   Вверх
$дмитрий
Дата 5.12.2011, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Цитата

ImageMagic только на перле использовал... это типа мини-фотошопа?

Это типа GD. но лучше
PM MAIL   Вверх
kuksha
Дата 5.12.2011, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



Посмотрел мельком - ну да, с этим я и работал в перловке, когда файлы надо было обрабатывать - размеры менять, резать и т.д.
Но, у меня то нет файлов - карта звёздного неба отрисовалась на экране у пользователя и больше никогда не понадобится, она постоянно меняется. 
То есть, обращение к диску только тормоза создаст дополнительные. В GD изображение вроде бы в памяти создаётся?
За совет в любом случае спасибо, но наверное мне не подойдёт... 

А МОЖЕТ Я ВСЁ-ЖЕ НЕПРАВИЛЬНО ПОНЯЛ? Тогда аналог бы на ImageMagic того примера, что в первом сообщении.
PM MAIL   Вверх
$дмитрий
Дата 5.12.2011, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Такс, по порядку:

Цитата

Но, у меня то нет файлов - карта звёздного неба отрисовалась на экране у пользователя и больше никогда не понадобится, она постоянно меняется.

Что мешает предварительно вручную создать файл нужного разрешения, с нужным диаметром круга, а уже на это изображение накладывать координаты звезд? Так можно ограничится одним GD

Цитата

То есть, обращение к диску только тормоза создаст дополнительные

Глупости. Это несоизмеримо с временем генерации картинки

Цитата

В GD изображение вроде бы в памяти создаётся?

Смущает то что ImageMagic выдает результат в файл? Никто не мешает, после создания карты, выводить результат в браузер и сразу удалять файл

Цитата

А МОЖЕТ Я ВСЁ-ЖЕ НЕПРАВИЛЬНО ПОНЯЛ?

Рекомендую все-таки почитать что такое ImageMagic

Цитата

Тогда аналог бы на ImageMagic того примера

Масса примеров http://www.imagemagick.org/Usage/draw/



Это сообщение отредактировал(а) $дмитрий - 5.12.2011, 23:07
PM MAIL   Вверх
$дмитрий
Дата 5.12.2011, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Не поленился, проверил. IM, без проблем, создает файлы большого размера. Причем, как и ожидалось, делает это оч. быстро

Получи и распишись smile
Код

convert -size 3000x3000 xc:black -fill green -stroke black -draw "circle 1500,1600 800,800" test.jpg

PM MAIL   Вверх
kuksha
Дата 6.12.2011, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



$дмитрий, спасибо!!!
Сразу в двух направлениях теперь копаться можно! 
Про заранее сделанный файл с кругами - вообще класс, красиво... кусаю локти что сам не додумался... ведь на поверхности  лежало!
smile 
PM MAIL   Вверх
Nigel
Дата 6.12.2011, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: нет
Всего: 19



Ради интереса запустил скрипт из первого поста - большой зеленый круг на черном фоне, никаких проблем.
PHP 5.3.5
PM MAIL   Вверх
kuksha
Дата 22.12.2011, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



Nigel, вот это сюрприз... я думал только версия GD важна... 
посмотрел: у меня php 5.2.12
Пошёл к провайдеру 5.3.6 заказывать smile как перенесут - отпишусь.

PM MAIL   Вверх
$дмитрий
Дата 22.12.2011, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



У меня на 5.3.5 касячило smile
PM MAIL   Вверх
kuksha
Дата 22.12.2011, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



И кому верить???  smile 
у меня сейчас PHP=5.2.12 и GD=2.0.34

Nigel, АУ! Поделитесь секретом!

(а с обновлением php пока обождать придётся - для этого обещают часовой перерыв в работе, а на этой площадке у меня несколько сайтов... буду думать что делать...)

PM MAIL   Вверх
$дмитрий
Дата 22.12.2011, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



kuksha, честно говоря ты совершено неправильно спроектировал свой сервис
Для отображения карты нужно использовать flash/canvas, а сервер должен отдавать только координаты
PM MAIL   Вверх
kuksha
Дата 22.12.2011, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



Насчёт "сервер должен отдавать только координаты" - координаты чего? Координаты объектов? А прорисовкой карты должен заниматься клиент? Да я только "за", особенно если учесть, что при теперешней конструкции сервер со временем рухнет от перегрузки...

Глядя на машинки вроде гугл-карт и ему подобные, я уже понял, что надо по-другому. 
Просто никогда такой графикой не занимался, совсем не знаю эти технологии. 
Вдобавок первоначально задачу поставил совсем простенькую - картинка и ничего больше, потом запросы к карте выросли, а остановиться вовремя не смог - вместо полной переделки стал улучшать то, что есть. Всё как обычно...
Сейчас я всё-же хочу добить вопрос из первого сообщения, раз появилось сообщение, что у Nigel GD вдруг оказалось не таким кривым как у меня - это позволит очень просто убрать один из самых серьёзных функциональных недостатков этой карты, не растрачиявая впустую силы на имиджмеджик и эквилибристику с заранее сделанным файлом фона - всё равно даже в том виде оставлять нельзя. А потом спокойно за переделку возьмусь.



Это сообщение отредактировал(а) kuksha - 22.12.2011, 23:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.1756 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.