Вход

Просмотр полной версии : Speccy online tools



nyuk
20.09.2009, 23:22
Speccy GFX converter - online-утилита для преобразования спектрумовской графики.

Поддержка режимов: Обычный экран (6912 байт);
Обычный экран без атрибутов (6144 байт);
Gigascreen (13824 байт);
MultiGigascreen (mgs, mg1..mg8 with header);
Неупакованный 8color (three 256x192 RGB screen bitplanes)
Обработка FLASH-атрибута (мерцание);
Возможность масштабирования 0.5x, 2x, 3x;
Сохранение результата в PNG или GIF формате;
Поддержка различных палитр по стандарту эмулятора Unreal Speccy;
Выбор размера и цвета BORDER для изображений;
Отображение скрытых пикселов (INK=PAPER) прозрачным цветом или одним из цветов на выбор;
Фильтры "черезстрочный" и "размытие";
"Склеивание" нескольких картинок в одну GIF-анимацию с возможностью задания задержек между кадрами;
Пакетная обработка: можно загрузить и сохранить сразу несколько картинок ZIP-архивом;

Для работы необходим Adobe Flash 9. Работа тестировалась в следующих браузерах: IE 6.0 (слегка подтормаживает), Firefox 3.5, Google Chrome (в нем работает лучше всего).

Постоянный адрес утилиты: http://nyuk.retropc.ru/speccy/gfx_converter
Последняя версия исходников с примером использования доступна по адресу: http://nyuk.retropc.ru/speccy

newart
21.09.2009, 00:00
К вопросу о гигаскрине. Попытался осилить топик о правильном смешивании цветов, не смог. Сделал по исходникам плагина theX. Если мне на пальцах объяснят, как правильно смешивать цвета для гигаскрина, готов доработать.
Юзай уже готовую палитру.

moroz1999
21.09.2009, 10:16
вечером скину тебе свой конвертер на PHP. поддерживает сменную палитру в стандарте Unreal, смешивание/мерцание Gigascreen на выбор, флэш-примочку и стандартное флэш-мигание. На выходе даёт как правило анимированный gif.

moroz1999
21.09.2009, 20:23
Выдрано из полуготового проекта, а комментов я по дурной привычке не пишу. Надеюсь, что названия свойств и методов класса скажут сами за себя. Для генерации анимированных картинок используется класс GIFEncoder, собирающий из готовых gif файлов анимацию.
За парсинг палитры и генерацию цветов отвечают generateColors и generateGigaColors. Код довольно-таки прямолинейный и неоптимальный, потому что упор сделан на кеширование результата.
Если кому-то реально понадобится весь класс в работоспособном виде, то сделаю готовый к использованию пример.

moroz1999
21.09.2009, 20:26
А, еще - есть огромная просьба: если дойдут руки до поддержки распространенных мультиколорных режимов, то выложи пожалуйста примеры картинок с результатами. Может сильно пригодиться в недалеком будущем.

nyuk
21.09.2009, 23:57
GIFEncoder у меня такой же точно прикручен, остальное позже посмотрю.
А выложи простенький примерчик, чтобы быстрее разобраться что для чего вызывается. Можно без камментов, и так все понятно.
Кстати, у тебя между GIF-фреймами 32 выставлены, имхо 50 нужно, нет?

moroz1999
22.09.2009, 13:46
Где-то я эту инфу искал и встретил цифру в 32 мс. Как на самом деле - не уверен, но при сравнении на глаз с эмулятором - очень похоже, почти не убегает.

newart
22.09.2009, 14:48
А про картинки с подписями под атрибутами не забыли?

Предлагаю в функцию конверсии внести автодетект (что бы оно возвращало флаг - есть / нет), а сами подписи конвертило в прозрачный цвет, тогда если нужно их показать достаточно всеголишь поменять цвет фона под картинкой (на сайте).

nyuk
22.09.2009, 20:44
А что-то я и не в курсе. Это когда текст одинаковым PAPER и INK?

moroz1999
22.09.2009, 20:52
А про картинки с подписями под атрибутами не забыли?

Предлагаю в функцию конверсии внести автодетект (что бы оно возвращало флаг - есть / нет), а сами подписи конвертило в прозрачный цвет, тогда если нужно их показать достаточно всеголишь поменять цвет фона под картинкой (на сайте).Очень оригинальная идея! Надо её как следует обдумать.

---------- Post added at 19:52 ---------- Previous post was at 19:51 ----------


А что-то я и не в курсе. Это когда текст одинаковым PAPER и INK?Ага, а под ним частенько оставляют разные подарки :)

nyuk
23.09.2009, 10:29
newart, а можешь такую картинку выложить? А то я долго искать буду...

newart
23.09.2009, 14:27
Вот.

pulsar
25.09.2009, 19:42
Юзай уже готовую палитру.
не тру! в прения вдаваться не буду.

К вопросу о гигаскрине. Попытался осилить топик о правильном смешивании цветов, не смог. Сделал по исходникам плагина theX. Если мне на пальцах объяснят, как правильно смешивать цвета для гигаскрина, готов доработать.
давай подытожу тот топик, но только посредственно, чтоб только все в дальнейшем гибко делать.

надо осилить только вот что из конфига unreal speccy:

; palette format:
; name=ZZ,ZN,NN,NB,BB,ZB:R11,R12,R13;R21,R22,R23;R31 ,R32,R33
; where ZZ,NN,BB - bright levels for black,normal,and bright colors
; ZN,NB,ZB - bright levels for zero+normal, normal+bright, zero+bright for GIGASCREEN and FLASH-COLORS
; Rnn - matrix for post-processing:
; real_Red = (Red*R11 + Green*R12 + Blue*R13) / 0x100
; real_Green = (Red*R21 + Green*R22 + Blue*R23) / 0x100
; real_Blue = (Red*R31 + Green*R32 + Blue*R33) / 0x100вроде бы не так много, вроде как все понятно?!!

если же пытаться объяснить описание палитры:

; name=ZZ,ZN,NN,NB,BB,ZB:R11,R12,R13;R21,R22,R23;R31 ,R32,R33
то получается: R11,R12,R13 - описывают красный цвет, R21;R22;R23 - зеленый, и R31,R32,R33 - синий, как это прикрутить надеюсь разжевывать не надо?

ZZ,NN,BB - bright levels for black,normal,and bright colorsанглийский "родной"? соответственно: color/256*bright level=real color. это надеюсь тоже понятно.

для гигаколоров цвет получаем (color1+color2)/2=colorn, осталось домножить на уровень брайта. их в гиге больше не 2(on|off)+черный как для стандарта, добавляются еще брайт. для сочетаний: черный+ноубрайт (1+2 скрин) - ZN, ноубрайт+брайт (1+2 скрин) - NB, черный+брайт (1+2 скрин) - ZB. результирующий: colorn/256*bright level=real color.

если все это понятно останется только прикрутить вот эти 3 основные палитры:

alone=00,60,A0,E0,FF,A0:FF,00,00;00,FF,00;00,00,FF
pulsar=00,76,CD,E9,FF,9F:FF,00,00;00,FF,00;00,00,F F
orthodox=00,76,CD,E9,FF,9F:D0,00,00;00,E4,00;00,00 ,FFна всякий случай держать их в таком же виде, чтобы легко можно было все подкорректировать и быть может вставить поле для ручного ввода такой последовательности, что очень просто.

если не все понятно стоит немного подумать...

когда это прикрутишь... думаю есть шанс что зантересуется риска, тогда надо будет для режимов х2, х3, х4 прикручивать фильтры (черезстрочник, блур...) потом надо будет все делать еще и для мультигиги... ладно ты хотя бы это осиль! чтоб хоть немного твой проект стал интереснее.

nyuk
25.09.2009, 22:49
pulsar, спасибо. Повникал в твой пост, стал больше понимать в вопросе. После выходных выберу время, повникаю еще, и все равно буду спрашивать.

moroz1999
25.09.2009, 23:43
если же пытаться объяснить описание палитры:
то получается: R11,R12,R13 - описывают красный цвет, R21;R22;R23 - зеленый, и R31,R32,R33 - синий, как это прикрутить надеюсь разжевывать не надо?

Я уже несколько раз этот вопрос поднимал, но моего знания матчасти не хватает.
Имхо, в этой формуле расчета что-то неверно:
real_Red = (Red*R11 + Green*R12 + Blue*R13) / 0x100

Объясню почему. В случае спектрумовского ярко-красного цвета мы получим такие значения:
real_Red = (0xFF*0xFF + 0 + 0) / 0x100
real_Red = 0xFE (после округления)

Но ведь #FE - это не #FF, который задумывался для R-канала.

pulsar
26.09.2009, 11:02
Я уже несколько раз этот вопрос поднимал, но моего знания матчасти не хватает.
Имхо, в этой формуле расчета что-то неверно:
Но ведь #FE - это не #FF, который задумывался для R-канала.
но именно по этой формуле считает анрил! возьми скинь скрин и померяй "пипеткой" и ты получишь fe вместо ff. что уже не плохо, хоть расчетная формула соответствует реализации.

насколько плох результат?! вот для примера:

http://zx.pk.ru/attachment.php?attachmentid=13422&stc=1&d=1253947206

на тему такой уж глобальности ошибки с ff|fe ^^^ (без "пипетки" кто-нибудь мне может сказать наверняка какая половинка картинки темнее? я нет! или у меня глаза кривые, или мон такой, на такую погрешность кладет, хз). на самом то деле конечно в формуле (зачем уж она составлена именно так как она уже долгие годы есть я не знаю, надо спрашивать автора - smt...) просматривается системная ошибка ведь если к примеру взять:

color=(#ff*#80+#ff*#80+#ff*#80)/#100
получим: color=#17e, да, если кто читал конфиг анрила:

; note: emulator uses 8-bit precision for color components,
; 8-bit filters: use 6 bit precision (VGA palette limitation)
; overlay & hi-color: truncates results to 5 bit
; true color: no quality loss
берем младшие 8 бит (в лучшем случае). так что вместо #80, получаем #7e, что в принципе приводит к ошибке немного превышающий 1%("на глаз" ошибку уже видно - проведите эксперимент...), что на мой взгляд тоже не так страшно! ведь при составлении палитры скажем значение яркости имеет существенное значение только при изменении на 5-10%, к тому же ошибка почти глобальная и почти всегда приводит к простому декременту задуманного значения (хотя есть и исключения, смотри выше).

на всякий случай приведу нормальную формулу, "состряпал", ее быстро почти не проверяя, быть может smt просто так же поступил? может где-то и ошибся... у меня получилось вот что:

color_x=(#ff*xr+#ff*xg+#ff*xb)/#2fd
тогда не придется даже выделять младшие 8 бит, тк больше 8 бит результат никогда не получится.

хочу однако предостеречь от холиваров! не знаю почему все так сделано в анриле! не знаю... да и это не столь существенно на мой взгляд! ведь в общем случае эта ошибка не превышает даже 1% и на глаз не заметна (смотри картинку выше). и еще, в том же спектакуляторе ярко белый это f8f8f8, во fuse ffffff, в анриле fefefe. так что все равно к общему знаменателю не придем. можете конечно проверять мою "правильную" формулу, если все правильно и есть уж очень большое желание можно попытаться попинать того кто сейчас клепает анрилы чтоб он это исправил, и скажем, в дальнейшем везде использовать эту формулу. но, имхо, ошибка такая старая и такая не значительная. не стал бы так беспокоиться.

истина ради истины... хотя конечно в последствии не стоит наверное наступать на теже грабли!!? правда еще раз повторюсь я хз зачем smt написал формулу именно так, может это была не ошибка? хотя, все же, скорее всего ошибка...

pulsar
26.09.2009, 11:30
pulsar, спасибо.
попробуй реализовать. если реализуешь как надо, и со временем добавишь мультигигу (а без нее, теперь уже, смысла подобных проектов уже почти не вижу!) подкину еще одну отличную идею. а пока тебе и так хватает над чем работать.

EEA
27.09.2009, 01:55
Я уже несколько раз этот вопрос поднимал, но моего знания матчасти не хватает.
Имхо, в этой формуле расчета что-то неверно:
real_Red = (Red*R11 + Green*R12 + Blue*R13) / 0x100

Думаю, правильно так:

real_Red = (Red*R11 + Green*R12 + Blue*R13) / (R11+R12+R13)
real_Green = (Red*R21 + Green*R22 + Blue*R23) / (R21+R22+R23)
real_Blue = (Red*R31 + Green*R32 + Blue*R33) / (R31+R32+R33)

По идее, это как раз простое смешивание цветов.
Коэффициенты матрицы нормированы.
Переполнения не будет ни при каких входных RGB.
Потери точности тоже не будет.
С математической точки зрения - все отлично.

Что и показано на частном случае здесь:

color_x=(#ff*xr+#ff*xg+#ff*xb)/#2fd

Но если pulsar имел в виду

real_Red' = (Red*R11 + Green*R12 + Blue*R13) / (#FF+#FF+#FF)

то это неправильно. Переполнения конечно не будет, но мы получим "ослабление" цвета.
Например, real_Red' = (#FF*#FF + 0 + 0) / #2FD = #55.

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

Итого:

Sr = (R11+R12+R13);
real_Red = (Red*R11 + Green*R12 + Blue*R13 + Sr/2) / Sr;
Sg = (R21+R22+R23);
real_Green = (Red*R21 + Green*R22 + Blue*R23 + Sg/2) / Sg;
Sb = (R31+R32+R33);
real_Blue = (Red*R31 + Green*R32 + Blue*R33 + Sb/2) / Sb;


Что касается оригинальной формулы:

правда еще раз повторюсь я хз зачем smt написал формулу именно так, может это была не ошибка? хотя, все же, скорее всего ошибка...

Возможно, он все-таки нормировал коэффициенты матрицы перед использованием, просто в комментах этого не указал.
Например, так:
R11 = R11*#100/(R11+R12+R13)

На это сможет ответить тот, кто разбирался в исходниках.

pulsar
27.09.2009, 11:40
EEA, привет, друг!

почитал то что ты по навоял, у меня после твоего сообщения пока больше вопросов чем ответов, пока некогда особенно все раскручивать, вечером приду возможно подобью всю концепцию. а пока разберитесь, что такое Red Green Blue в формуле и почему при такой палитре (не важно, что она не правильная! зато помогает понять, что такое Red Green Blue):

=00,76,CD,E9,FF,9F:80,80,80;00,FF,00;00,00,FF
получаем такую картинку:

pROF^4D
27.09.2009, 15:28
Буквально позавчера встал вопрос, как перетащить кучу своей графики в png...

Уже на данном этапе вещь нужная и полезная! Однако при первом же тесте появились непонятные артефакты (в виде черной однопиксельной полоски) с правой стороны экрана на некоторых картинках. Глюк самого конвертора, поскольку и в обычном режиме и в режиме пакетной обработки экраны получаются одинаковыми. Прикрепил к этому сообщению пару примеров, смотри сам.

+ Обязательно нужно добавить border! Просто сделать дополнительной опцией для выбора (on/off). Некоторые работы изначально задуманны под его определенный цвет.

Успехов!
Ждем следующую версию!

newart
27.09.2009, 17:28
+ Обязательно нужно добавить border! Просто сделать дополнительной опцией для выбора (on/off). Некоторые работы изначально задуманны под его определенный цвет.
Это же WEB утилита, а там за бордер отвечает html.

nyuk
27.09.2009, 19:54
pROF^4D, а можешь скинуть SCR-оригиналы? Те, на которых ошибки вылезли.

По поводу бордера согласен с newart. Я конечно могу сделать опцию увеличения картинки, т.е. к примеру вместо 256х192 делать 320х240 и поля заливать цветом бордюра. Но оно будет востребовано?

EEA
27.09.2009, 20:51
EEA, привет, друг!
Привет, Дим.:v2_cheer:

почитал то что ты по навоял, у меня после твоего сообщения пока больше вопросов чем ответов, пока некогда особенно все раскручивать, вечером приду возможно подобью всю концепцию.Да вроде все предельно ясно...:v2_conf2:

а пока разберитесь, что такое Red Green Blue в формуле и почему при такой палитре (не важно, что она не правильная! зато помогает понять, что такое Red Green Blue):

=00,76,CD,E9,FF,9F:80,80,80;00,FF,00;00,00,FF
получаем такую картинку:
А чем таким может быть RGB в формуле?
Цвета на картинке при заданной палитре в точности совпадают с расчетными по формулам из Unreal'а.

Например, первая колонка цвета: Red = Green = Blue = #CD.
real_Red = (#CD*#80 + #CD*#80 + #CD*#80) / #100 = #133 -> #33
Вторая колонка: Red = Green = Blue = #FF.
real_Red = (#FF*#80 + #FF*#80 + #FF*#80) / #100 = #17E -> #7E
И т.д.
Очевидно, что никакой нормализации коэффициентов матрицы (как я предположил в прошлом посте) в Unreal'е не производится. Происходит переполнение и лишние разряды просто отбрасываются.
Все просто.

Если считать по моим формулам, то картинка при заданной палитре будет такой (на цвет цифр не обращайте внимания, их не раскрасил):

pROF^4D
27.09.2009, 21:44
pROF^4D, а можешь скинуть SCR-оригиналы? Те, на которых ошибки вылезли.

По поводу бордера согласен с newart. Я конечно могу сделать опцию увеличения картинки, т.е. к примеру вместо 256х192 делать 320х240 и поля заливать цветом бордюра. Но оно будет востребовано?


Вот оригиналы в scr.

Мы же все, почему-то не задаемся вопросом когда на реале вся отображаемая графика имеет бордюр =) Не знаю, как остальные, а я не представляю спектрумовскую графику без него.

newart
27.09.2009, 22:11
Мы же все, почему-то не задаемся вопросом когда на реале вся отображаемая графика имеет бордюр =) Не знаю, как остальные, а я не представляю спектрумовскую графику без него.
Да задаемся. Просто если применительно к Вебу то с бордером влезает меньше картинок на одну строку, при этом 98% картинок имеют черный бордер и отлично смотрятся без него.

nyuk
27.09.2009, 22:36
Ошибку с лишними пикселями в последней линии пофиксил. Чуть позже выложу обновления.

По поводу бордера, все зависит от того, где потом будет использоваться картинка. Если для веба, то бордер не нужен. Но не всем картинки нужны для сайтов... ;-)

Занесу в тодо, пусть будет опция. Какие размеры делать для картинок с бордером? Фиксированные, типа 320х240, 640х480... или например в процентах от размера картинки?

EEA
27.09.2009, 22:44
Думаю, правильно так:

real_Red = (Red*R11 + Green*R12 + Blue*R13) / (R11+R12+R13)
real_Green = (Red*R21 + Green*R22 + Blue*R23) / (R21+R22+R23)
real_Blue = (Red*R31 + Green*R32 + Blue*R33) / (R31+R32+R33)


Все немного сложнее.
По этим формулам палитра

orthodox=00,76,CD,E9,FF,9F:D0,00,00;00,E4,00;00,00 ,FF
не даст ожидаемого эффекта (ослабления каналов R и G).

Надо нормировать по всем строкам вместе, а не по каждой отдельно.
Вот так:

Sr = (R11+R12+R13);
Sg = (R21+R22+R23);
Sb = (R31+R32+R33);
S = max(Sr, Sg, Sb);
real_Red = (Red*R11 + Green*R12 + Blue*R13) / S
real_Green = (Red*R21 + Green*R22 + Blue*R23) / S
real_Blue = (Red*R31 + Green*R32 + Blue*R33) / S


(Ну и еще конечно можно округлить, как я писал выше)

newart
27.09.2009, 23:04
Занесу в тодо, пусть будет опция. Какие размеры делать для картинок с бордером? Фиксированные, типа 320х240, 640х480... или например в процентах от размера картинки?
Лучше и так и так, при этом фикированые не только 320, а варианта 3-4.

pulsar
27.09.2009, 23:21
Просто если применительно к Вебу то с бордером влезает меньше картинок на одну строку
СЛАВКА, nyuk, СЛУШАЙТЕ ПРОФА дело говорит! бордюр нужен однозначно!

Но не всем картинки нужны для сайтов...
славка, и не всему вебу нужна безбордюрная графика! тем более, что у спека ЕСТЬ бордюр и заранее лишать его НЕЛЬЗЯ! для фанатов безбордюрных картинок надо сделать функцию...

блин, я бы вообще сюда с удовольствием не сунулся, если бы не критический момент, всяким товарищам (типа того же славки) только дай волю! навояют очередного нестандату и неудобоваримого столько... жуть в общем иной раз берет даже с их кощунства, а душа у меня болит!

EEA (жень), утром думал что смогу найти в себе сил все в кучу собрать, но уработался сегодня жуть, пока лишь бы до постели доползти... так что не буду на твои выкладки ничего отвечать, во всяком случае сегодня. прости, пока толком не вникал в твои выводы, но пока складывается устойчивое впечатление, что ты исходя из нормального посыла изначально, ведешь нас как сусанин в другую степь! ты немножко как я понимаю изначально не совсем в тематике (прости если обидел - но согласись изначально это так). ну так вот изначальный пасыл должен быть не в том чтобы разработать новую более грамотную модель расчета! нет вовсе нет! нужно всего лишь четко выстроить схему работы расчета сто лет назад реализованного в unreal by smt БОЛЬШЕ НИЧЕГО НЕ НАДО! где-то выше я приводил формулу, якобы правильного расчета, ну так вот, с самого начала я призывал за нее цепляться как за истину в последней инстанции! она кстати не верна в корне. если есть желание и время построить всю математику... пожалуйста все карты в руки! только не надо на 10 листов размазывать в одном посте выложите всю математику того как оно есть на самом деле в анриле (с примерами и контр примерами) и только после того как будет доказана правильность математики, уже только тогда можете пытаться искать ошибки и исправлять их, а не сейчас.

кстати про контр примеры и примеры в анриле все той же сменой значений описывающей палитру легко получить черно-белую картинку! nyuk, обрати на это внимание ПОЖАЛУЙСТА! вот одна из таких классических палитр, которую 4й тоже нужно будет включить в конвертер на ровне с предыдущими тремя:

Grey=00,80,C0,E0,FF,C8:49,92,24;49,92,24;49,92,24

---------- Post added at 01:21 ---------- Previous post was at 01:18 ----------


Какие размеры делать для картинок с бордером?
предлагаю и здесь не изобретать велосипед! есть в том же анриле понятие small border, который всех устраивает?! вот и брать разрешение 640х480 для х2 и половину для х1.

newart
27.09.2009, 23:21
славка, и не всему вебу нужна безбордюрная графика! тем более, что у спека ЕСТЬ бордюр и заранее лишать его НЕЛЬЗЯ! для фанатов безбордюрных картинок надо сделать функцию...

блин, я бы вообще сюда с удовольствием не сунулся, если бы не критический момент, всяким товарищам (типа того же славки) только дай волю! навояют очередного нестандату и неудобоваримого столько... жуть в общем иной раз берет даже с их кощунства, а душа у меня болит!
Бордер такая вещь что добавить его раз плюнуть, а вот убрать уже не так то просто. Отсюда и такое мое к нему отношение.

pulsar
27.09.2009, 23:49
Бордер такая вещь что добавить его раз плюнуть, а вот убрать уже не так то просто. Отсюда и такое мое к нему отношение.
раз плюнуть говоришь?! миллион криворуких найдется! и бордер будет похерен и велосипедов на изобретают, так что... а так на уровне конвертера половина проблем решиться, а для гуру и фанатиков функция все решит. да, и славка про то, что бордер сложно удалить - пускай nyuk в человеческий вид все приведет потом еще одну идею выскажу... не приведет, ну, значит и не надо, не доросли пока значит (если останется в таком виде примерно как сейчас я первым же противником проекта стану, да и не найдет, очень рассчитываю, тогда широкого применения и загнется слава богу - нестандарты с велосипедами не нужны по определению!). СЛАВКА, и ты здесь не один слава богу! если бы не твой один из первых постов где ты как всегда рубанул с плеча, - я бы и участвовать не стал!

Но не всем картинки нужны для сайтов...

не всему вебу нужна безбордюрная графика!

тем более, что у спека ЕСТЬ бордюр и заранее лишать его НЕЛЬЗЯ!

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

для фанатов безбордюрных картинок надо сделать функцию...
читай. а дальше лесом! и спорить тут больше не вижу смысла.

---------- Post added at 01:35 ---------- Previous post was at 01:24 ----------

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

---------- Post added at 01:49 ---------- Previous post was at 01:35 ----------


не даст ожидаемого эффекта (ослабления каналов R и G).
блин, расходиться начинаю, скоро держать меня надо будет! ведь работает в анриле нормально! раз работает так и надо думать в направлении его математики (в код может быть лезть), а не городить... жень, прости, просто серьезно - лучше лишнего не писать. есть желание, говорю, так возьмись посчитай по человечески без абы да кабы! чтоб все как часики все примеры и контр примеры... все сюда больше не пишу ничего кроме нормальной математики. надоело, сколько можно?!.

nyuk
28.09.2009, 00:07
Бордер по люьому буду делать опцией.
Про "Grey" палитру как раз только что сам догадался :-)

EEA
28.09.2009, 03:30
прости, пока толком не вникал в твои выводы, но пока складывается устойчивое впечатление, что ты исходя из нормального посыла изначально, ведешь нас как сусанин в другую степь! ты немножко как я понимаю изначально не совсем в тематике (прости если обидел - но согласись изначально это так).
Ну вообще я изначально отвечал на это:

Я уже несколько раз этот вопрос поднимал, но моего знания матчасти не хватает.
Имхо, в этой формуле расчета что-то неверно:
Насчет в теме/не в теме: этот топик прочитал, два другие с обсуждением количества цветов и как смешивать тоже. Наверное всё-таки немного в теме.

ну так вот изначальный пасыл должен быть не в том чтобы разработать новую более грамотную модель расчета! нет вовсе нет! нужно всего лишь четко выстроить схему работы расчета сто лет назад реализованного в unreal by smt БОЛЬШЕ НИЧЕГО НЕ НАДО!
"Выстроить схему работы расчета" говоришь? Пожалуйста.
Unreal считает в точности по формулам, которые записаны в его ini-шнике (которые ты указал в своем первом посте здесь).
Я это проверил по запощенному тобой скриншоту с "кривой" палитрой.
(Видимо, зря потратил время.)

Цвета на картинке при заданной палитре в точности совпадают с расчетными по формулам из Unreal'а.
Значения ZZ,ZN,NN,NB,BB,ZB не вычисляются, а задаются палитрой.


если есть желание и время построить всю математику... пожалуйста все карты в руки! только не надо на 10 листов размазывать в одном посте выложите всю математику того как оно есть на самом деле в анриле (с примерами и контр примерами) и только после того как будет доказана правильность математики, уже только тогда можете пытаться искать ошибки и исправлять их, а не сейчас.
См. выше. Как считает Unreal - 100% понятно.

А ошибки в Unreal я и не собирался искать. Просто написал, как можно считать, чтобы избежать переполнения, чтобы не получалось #FE вместо #FF и чтобы минимизировать ошибку округления. И всё. Может кому пригодится.


где-то выше я приводил формулу, якобы правильного расчета, ну так вот, с самого начала я призывал за нее цепляться как за истину в последней инстанции! она кстати не верна в корне.


блин, расходиться начинаю, скоро держать меня надо будет! ведь работает в анриле нормально! раз работает так и надо думать в направлении его математики (в код может быть лезть), а не городить... жень, прости, просто серьезно - лучше лишнего не писать.
ОК. Как скажешь.
Больше тратить время, городить и писать лишнего на 10 листов не буду, благо есть чем заняться более полезным.

moroz1999
28.09.2009, 23:11
Бордер такая вещь что добавить его раз плюнуть, а вот убрать уже не так то просто. Отсюда и такое мое к нему отношение.Предлагаю такую концепцию:
1. Картинки хранятся в оригинальном виде.
2. У каждой картинки ручками может быть введен цвет бордюра и, если необходимо, формат (gigascreen/monochrome/flash-effect)
3. У каждого пользователя есть настройки - любимая палитра, показывать/скрывать бордюры, мигать/смешивать gigascreen и flash-эффект.
4. Эти настройки так или иначе передаются в скрипт, отвечающий за выдачу картинки.
5. Скрипт берет настройки, шерстит кэш, при необходимости генерит недостающий вариант и отдаёт конкретному юзеру желаемый им вариант автоматом!

И никаких холиваров - все довольны. Почти реализовал это у себя. Доделаю альфа-версию проекта - покажу подробнее.

pulsar
28.09.2009, 23:52
Предлагаю такую концепцию:
1. Картинки хранятся в оригинальном виде.
2. У каждой картинки ручками может быть введен цвет бордюра и, если необходимо, формат (gigascreen/monochrome/flash-effect)
3. У каждого пользователя есть настройки - любимая палитра, показывать/скрывать бордюры, мигать/смешивать gigascreen и flash-эффект.
4. Эти настройки так или иначе передаются в скрипт, отвечающий за выдачу картинки.
5. Скрипт берет настройки, шерстит кэш, при необходимости генерит недостающий вариант и отдаёт конкретному юзеру желаемый им вариант автоматом!

И никаких холиваров - все довольны. Почти реализовал это у себя. Доделаю альфа-версию проекта - покажу подробнее.
фак, фак, фак... ой какой молодец (мега уважуха), аж события поторопил, я это только еще в будущие планы закладывал:

подкину еще одну отличную идею.

на всякий случай держать их в таком же виде, чтобы легко можно было все подкорректировать

пускай nyuk в человеческий вид все приведет потом еще одну идею выскажу...
отлично! ладно, если суть идеи почти озвучена доскажу ее до конца:
1. не надо хранить картинку на сервере конвертера!
2. конвертер в идеале должен быть яваскрипт/ява/флэш компонентом догружаемым в любую веб страницу
3. скрипту ^^^ передается урл на стандартный спековский скрин (scr, img, mg(x)), скажем линк на палитру (так оно лучше, чем передавать строку с палитрой тк можно будет свичить прямо на лету в нужную палитру), параметры фильтрации (зум, блур, интерлейз, бордюр (хотя в mg(x) он и так встроен в картинку))

так хорошо... а для чего это вообще надо? все же питаю надежды что мы все вместе со временем "поднимим" таки графический ресурс! а этот компонент оказался бы как нельзя кстати (когда графики тьма просто...) к примеру все ведь думаю в курсе, что парацелс в свое время рисовал свою цветную графику на черно-белом мониторе? ну так вот думаю было бы интересно посмотреть на эти работы и в таком ином свете - что было бы очень легко. плюс ко всему у такой модели огромнейшая гибкость, ведь к примеру, я сейчас на себя (в отличии от нуарта) не возьму ответственность заявлять как именно в каком масштабе с какими фильтрами нужно показывать графику - здесь же у нас будет все чего не хватает на любой вкус и цвет.

---------- Post added at 01:52 ---------- Previous post was at 01:44 ----------

ладно раз нарушил собственное же обещание:

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

nyuk
29.09.2009, 00:57
Так и не уяснил до конца, откуда берется третье состояние яркости. Про два понятно (6-й бит атрибута). Посмотрел исходники moroz1999, там уровень ZZ используется если для получаемого реального цвета нет такого же исходного компонента. Иначе используется NN или BB в зависимости от уровня яркости атрибута.
Блин, не могу сформулировать, в общем к примеру для темно-красного (#02):

real_Red = (NN*R11 + ZZ*R12 + ZZ*R13) / #FF
Для ярко-желтого (#46):

real_Red = (BB*R11 + BB*R12 + ZZ*R13) / #FF
Я правильно понял?

Перенес функции generateColors и generateGigaColors цветов себе практически без изменений. Возникла проблема переполнения цвета на палитрах "Mars" и "Ocean" из unreal.ini. Поправил формулу по способу EEA:

Sr = (R11+R12+R13);
Sg = (R21+R22+R23);
Sb = (R31+R32+R33);
S = max(Sr, Sg, Sb);
real_Red = (Red*R11 + Green*R12 + Blue*R13) / S
real_Green = (Red*R21 + Green*R22 + Blue*R23) / S
real_Blue = (Red*R31 + Green*R32 + Blue*R33) / S
Переполнение исчезло. Кстати для палитр "pulsar" и "alone" разницы никакой, т.к. там S=0xFF

В общем, вылил всё на сайт, можно тестить. В обычном экране цвета похожи на Unreal, но если померять пипеткой, чуть-чуть отличаются. Посчитал на калькуляторе, вроде у меня по формуле все...

Гигаскрин заметно светлее, чем в Unreal, возможно там я совсем ничего не понял.

Еще поправил ошибку с последним столбцом пикселей, остальное позже.

Потестировал гораздо хуже, чем предыдущую версию, так что ошибки должны быть. :-)

pulsar
29.09.2009, 01:05
ват ви хэв ~ в чем суть?
предлагаю рассматривать все на основе палитры:

pulsar=00,76,CD,E9,FF,9F:FF,00,00;00,FF,00;00,00,F Fоткуда я ее взял? при желании найдете (обсуждали мы тут ее с полтора года назад... ссылок больше не даю ибо ламеры по ним все равно не ходят (задолбали!), а кому надо и без мой помощи во всем разберется). ну так вот взял ее потому как она почти самая удобная получается (все значения цветов максимально просты - #FF), а все яркости различны (но рассуждение будет справедливо пожалуй для любой палитры, а иначе зачем это все надо вообще?!.), в отличии от палитры:

alone=00,60,A0,E0,FF,A0:FF,00,00;00,FF,00;00,00,FF вообще она ^^^ самая странная и не адекватная как сегодня при новом рассмотрении оказалась, в сравнении с остальными:

Mars=00,80,C0,E0,FF,C8:FF,00,00;40,C0,00;00,40,C0
Ocean=20,80,A0,C0,E0,A8:D0,00,30;00,D0,30;00,00,FF
Grey=00,80,C0,E0,FF,C8:49,92,24;49,92,24;49,92,24
alone=00,60,A0,E0,FF,A0:FF,00,00;00,FF,00;00,00,FF
pulsar=00,76,CD,E9,FF,9F:FF,00,00;00,FF,00;00,00,F F
pul=80,76,CD,E9,FF,9F:80,80,80;00,FF,00;00,00,FF
ATM=00,55,AA,E0,FF,80:FF,00,00;00,FF,00;00,00,FF
orthodox=00,76,CD,E9,FF,9F:D0,00,00;00,E4,00;00,00 ,FFобратите внимание на 3 и 6 компоненты яркости и все станет ясно, имхо палитра alone, хуже всего подходит для гига и мультигига графики, и тому целый ряд причин, ну да ладно бог с ней мы не ради этого собрались.

перепишем палитру в удобной для разговора форме:

ZZ,ZN,NN,NB,BB,ZB:R1,R2,R3;R4,R5,R6;R7,R8,R9
pulsar=00,76,CD,E9,FF,9F:FF,00,00;00,FF,00;00,00,F F

; where ZZ,NN,BB - bright levels for black,normal,and bright colors
; ZN,NB,ZB - bright levels for zero+normal, normal+bright, zero+brightнадеюсь никто не против что я так с коэффициентами поступил (как говорится от перестановки...)?! сразу тогда расчетные формулы перепишу чтоб все понятно было (классику с новыми коэффициентами):

; real_Red = (Red*R1 + Green*R2 + Blue*R3) / 0x100
; real_Green = (Red*R4 + Green*R5 + Blue*R6) / 0x100
; real_Blue = (Red*R7 + Green*R8 + Blue*R9) / 0x100формулы абсолютно нормальные рабочие все отлично, жень, ты прав:

Unreal считает в точности по формулам, которые записаны в его ini-шнике (которые ты указал в своем первом посте здесь).
Я это проверил по запощенному тобой скриншоту с "кривой" палитрой.
прости меня дурака!..

ладно, поехали дальше. цветовую логику заметили? надеюсь да.

на самом деле кроме математики есть еще немого, но логики, надеюсь поймете. рассмотрим пример: есть у нас красный спековский цвет для примера одноэкранный и не яркий чтоб все просто. тогда вся наша формула для красного цвета должна превратиться (не забываем что мы работаем с палитрой pulsar надеюсь никто там ничего плохого не подумал...):

real_Red = (CD*FF + CD*00 + CD*00) / 0x100в результате мы и получаем то что и должны CC. можно будет померить - в аттач положу пару картинок в нужной нам палитре проверяйте. что откуда взялось думаю понятно? CD - это NN (яркость раз мы ее такую выбрали для примера). для остальных составляющих (green, blue) получим по 0, только не за счет составляющих R4-R9 которые у нас никуда не могут исчезнуть а за счет того, что яркостная компонента в формуле берется ZZ! хочу обратить на это особое внимание! все нужно делать правильно!

еще момент, что такое белый цвет? это 111 в бинарнике, ну так вот черный цвет это тоже 111 в бинарнике только в формулу яркость подставляется ZZ! надеюсь это очевидно! и на этом тоже заостряю особое внимание это тоже очень важно.

так ну что надеюсь с одним экраном все ясно? проверяйте, вчитывайтесь, по идее не мог наврать, хоть уже и 3 часа ночи... сам завтра все перечитаю перепроверю но надеюсь нигде ничего не наврал.

тогда идем в два экрана. кладу второй скрин в аттач.

пускай будет тоже красный цвет на одном экране и тоже не яркий тогда формула:

real_Red = (76*FF + 76*00 + 76*00) / 0x100
равно 75 все понятно?! надеюсь да - имеем ZN тк на одном скрине у нас не яркий красный на втором черный. если будет яркий будет соответственно ZB. что если два не ярких красных? логично! NN:

real_Red = (CD*FF + CD*00 + CD*00) / 0x100
когда получится NB, BB уверен, - ясно!? черный в гиге получаем аналогично одному экрану.

все если не ошибаюсь осталось рассмотреть для гиги еще только один показательный случай. смешаем к примеру не яркий синий с ярким фиолетовым, тогда для красной составляющей получим 75, справитесь?! думаю да, а иначе что вы тут делаете!? а вот по синей будет E8, надеюсь тоже объяснять не придется!

в общем все, хз все разжевал дальше не куда... просто ужас как... лучше только лично на примерах с глазу на глаз мог бы объяснить. так что не знаю надо ли еще этот вопрос еще трогать или нет, ну разве что я где-то по времени суток накосячил... ну да завтра все проверю!

pulsar
29.09.2009, 01:17
хотел было еще написать как правильно нормировать цвета, но уже и так не успел... ты раньше закончил чем я дописал.

гигу удобно проверять приаттаченым файлом (создавался в году так 2003м).

---------- Post added at 03:31 ---------- Previous post was at 03:17 ----------


В общем, вылил всё на сайт, можно тестить.
первые тесты - "отличная работа"! завтра еще потестирую, глядишь и не я один. если все ок ждем бордер и затем мультигигу. далеше горизонт moroz1999, и я нарисовали...

---------- Post added at 03:36 ---------- Previous post was at 03:31 ----------

палитры Mars, Ocean можно бы вроде и выкинуть... ну да ладно больше не меньше, там разве что еще так и для ручного ввода останется только что то предусмотреть (но с этим лучше не спешить) слишком много вариантов тоже иногда становится плохо.

все, пока хватит, ушел спать (на часах почти 4).

nyuk
29.09.2009, 08:32
Сорри, вчера в предыдущем посте написал ерунду.
На самом деле, у меня считает цвета так же, как написал pulsar. Если сконвертировать AllColor.img и сравнить в фотошопе со скриншотами выше, то расхождения будут на единицу.
Т.е. для темно-красного в палитре pulsar вместо #cc будет #cd. А если вместо нормализации по методу EEA просто делить на 0x100, от совпадение вообще будет полным.

По поводу палитр. Я думаю не отключать лишние, мне например Mars нравится, она забавная. Но вот я бы палитру pulsar переставил вверх, чтобы она стала по-умолчанию, т.к. картинка с ней получается самая "ровная" что ли.

pulsar
29.09.2009, 12:39
перечитал свой ночной пост... эх и понаписал же... ладно, вроде бы все понятно и вроде как верно. поправил некоторые шероховатости, полностью все выправлять не стал, чего уж там если тут некоторые собственную подпись то с очепяткими пишут:

Спектрумист, не умеющий форматировать дискты на реале.
смеюсь. ладно.

значит еще что?! на бордер рассчитываю?! как делать вроде бы обсудили выше и делать как понимаю не проблема... следующий этап мультигига в mg(x) коих 4 шт (mg1, mg2, mg4, mg8) - значение бордера хранится в самом файле вот выдержка из документации (саму документацию кинул в ататач (выдернул из первого поста tmk (http://zx.pk.ru/showthread.php?t=9572))):

For MG1,MG2,MG4,MG8 file have HEADER 256 bytes length (one sector on tr-dos disk):
[3] MGx_FILE_ID Identifier for MG files = "MGH" (Milti Gigascreen ZX File Header)
[1] MGx_FILE_VER MG zx file format Version
[1] MGS_CharSize Size of Char[1=8x1, 2=8x2, 4=8x4, 8=8x8]
[1]* ZX Color1 Border
[1]* ZX Color2 Border
8х2, 8х4, 8х8 в будущем вряд ли изменятся, а вот 8х1 может измениться (так что надо будет отслеживать еще и параметр - MGx_FILE_VER)! кпримеру вместо 16 знакомест в ширину мультиколор можно сделать скажем 18-20 без особых проблем да и само "окно" по идее может стать плавающим. в общем это надо делать! обязательно! думаю еще и tmk потом тебе памятник соорудит...

так и еще маленькое (именно маленькое) предложение-дополнение. надо для веба сделать масштаб х0.5! зачем это надо?! zpixel (http://zpixel.by.ru/galleries/authors/pheel/gal1.html) и аналоги ([1] (http://www.mobygames.com/game/zx-spectrum/mystery-of-the-nile/screenshots), [2] (http://zx-art.ru/)) - вот и весь ответ! почему х0.5 нельзя (не желательно делать) вебом?! потому как по юзате разные браузеры! они ведь все уж очень не стандартны все очень зависит от типа браузера и операционной системы, где-то масштаб с блюром будет, где-то еще что-то...

pulsar
29.09.2009, 13:16
я бы палитру pulsar переставил вверх, чтобы она стала по-умолчанию
мне нравится эта идея, улыбаюсь. это, думаю, будет в двойне оправдано, тк эта палитра сейчас по дефолту используется в multiArtist (http://zx.pk.ru/showthread.php?t=9572) - пока, единственном мультигигаскрин редакторе. да и та же палитра alone на самом то деле кроме как в анриле даже по логике формирования цвета больше нигде не представлена (хотя здесь могу и ошибаться глубокого анализа не проводил), во всяком случае в чистом виде точно нигде, разве что в отечественных вьеверах которые писались опираясь на анрил.

nyuk
29.09.2009, 18:59
С бордером делаю варианты 1:1 как в анриле. На счет масштаба 0.5 согласен, заношу в туду.

moroz1999
29.09.2009, 21:11
хмм, насчет масштаба 0.5 - это да, это в to-do.

хотя, с другой стороны, я как-то уже не раз про себя отмечал, что на более-менее современных мониторах 0.5x маловато как-то - оригинальный размер выглядит как крупный thumbnail..

pulsar
29.09.2009, 22:13
хотя, с другой стороны, я как-то уже не раз про себя отмечал, что на более-менее современных мониторах 0.5x маловато как-то - оригинальный размер выглядит как крупный thumbnail..
чем гибче будет тем лучше, сделать не такая уж проблема. кому надо пусть пользуется нет, нет (вот х0.25 и в правду пожалуй уже не нужно). кстати, х0.5 советую делать не используя алгоритмы интерполяции типа lanczos... лучше будет смотреться кубическая, а еще лучше линейная интерполяция!

nyuk
30.09.2009, 01:20
Прикрутил бордеры. Такой вопрос, делать выбор обычная/повышенная яркость для бордера? По идее, на реале такого нет, но для некоторых картинок могло бы подойти.

И сделал показ скрытых пикселей прозрачностью, как просил newart. Правда есть баг: прозрачность при просмотре работает и для GIF, и для PNG. Но после скачивания у PNG прозрачность исчезает, а с GIF все нормально. Пока не знаю, в чем дело.

pulsar
30.09.2009, 09:13
Прикрутил бордеры.
зачет! смотрю сделал small и full, вообще правильно, уже и в дальнейшем спорить ни о чем не придется.

Такой вопрос, делать выбор обычная/повышенная яркость для бордера? По идее, на реале такого нет, но для некоторых картинок могло бы подойти.
имхо, сам ответил:

на реале такого нет
и если сюда миллион художников не придет и не потребует обратного, думаю в этом направлении и думать не надо.

И сделал показ скрытых пикселей прозрачностью, как просил newart.
отличная дополнительная свистелка! за нее вообще вам с ньюартом большое спасибо! мне как-то в голову не приходило, а зря!!

после скачивания у PNG прозрачность исчезает, а с GIF все нормально.
либо ты поправил, либо не парься все отлично работает, другой разговор, что если взять скажем картинку ньюарта с белым папером, конвертнуть хоть в gif хоть в png а потом положить на белую же подложку... никакой скрытой части мы естественно не увидим. ну так вот маленькое дополнение - предлагаю к этой функции прикрутить не только прозрачность (почти идеально для веба, т.к. подложку можно менять на лету), но и выбрать (лучше вписать) какой-нить цвет которым и будет отображаться эта скрытая часть (как вариант можно все же сделать выбор из пары-тройки уж точно не спековских цветов, корорые не возможно получить даже в гиге).

---------- Post added at 11:13 ---------- Previous post was at 11:09 ----------

ну что переходим на следующий уровень?! даешь mg(х)! пора...

nyuk
01.10.2009, 00:05
либо ты поправил, либо не парься все отлично работает
Не правил. У меня не работает. Может от браузера зависит...


можно все же сделать выбор из пары-тройки уж точно не спековских цветов, корорые не возможно получить даже в гиге.
А можешь подобрать такие цвета? У меня сейчас для прозрачности выбран 0x010101, оно работает, но как-то напрягает.


ну что переходим на следующий уровень?! даешь mg(х)! пора...
Я сейчас немножко доработаю интерфейс и загрузку файлов, потом приступаю. Правда уже основная работа ласково стучит по левому плечу...

nyuk
01.10.2009, 02:20
Ура. Все-таки успел закончить за сегодня.

Итак, теперь загрузка файлов отдельно, конвертация отдельно. Загруженные файлы хранятся на сервере в течении часа (это обсуждаемо) и видит их любой посетитель. Если загрузить ZIP, он автоматом распаковывается.

Для конвертации нащелкиваем из списка файлы, сортируем как нужно (например для создания одной GIF картинки с кадрами), выбираем опции, конвертируем. По-моему в разы удобнее. В общем, проще посмотреть.

Файлики с префиксом [example] неудаляемы. Типа примеры, как и просил moroz1999

Страницы GIF-аниматора больше нет. Теперь это одна из функций самого конвертера.

Проблемы:
* В IE как-то некрасиво и томознуто. Впрочем, тру-спектрумисты поделки микрософта не признают. :-)
* Если сервис станет популярен, будет неудобно рыться в общей куче загруженных файлов и искать там свои. Но это потом можно подумать.
* Страница стала еще прожорливей. У меня на коре2дуо разницы не заметно, но на каком-нибудь 1200-м целероне думаю будет очень некомфортно. Зато красиво.

Можно и нужно потестить, наверняка багов наоставлял :-)

pulsar
01.10.2009, 10:38
...потом приступаю. Правда уже основная работа ласково стучит по левому плечу...
надеюсь mg(x) все же успеешь добить! а то опять получится как в чебурашке: "могу дать кирпич, но только на пол-дома, камаз, но только на пол-дороги..."

еще такой момент, у тебя по дефолту стоит картинка без бордера, сделай ее с small бордером, понимаю, что в ручную поставит не долго, но зачем приучать к плохому! можно бы еще поставить х2 по умолчанию, но не факт... хотя, обычно графику все так и воспринимают.


Ура. Все-таки успел закончить ...
Файлики с префиксом [example] неудаляемы. Типа примеры, как и просил moroz1999
отлично!


В IE как-то некрасиво и томознуто. Впрочем, тру-спектрумисты поделки микрософта не признают
ослика уж точно в топку!


Страница стала еще прожорливей. У меня на коре2дуо разницы не заметно, но на каком-нибудь 1200-м целероне думаю будет очень некомфортно. Зато красиво.
у меня вполне комфортно, вот только медленнее картинка стала конвертиться, что несколько настораживает. кстати, сейчас она где конвертиться на клиенте или на сервере? видимо на сервере...


А можешь подобрать такие цвета?
займусь.

pulsar
01.10.2009, 12:55
А можешь подобрать такие цвета?
казалось бы у спека даже в гиге всего 102 цвета, но взяв хотябы 3 основные палитры pulsar, alone, orthodox, мы получаем уже значительно больше прибавив к этому тот факт, что эти цвета разбивают все цветовое пространство примерно в равных долях получаем совсем не тривиальную задачу.

ладно от философии к практике. взял gimp (http://gimp.org/), colorwizard (http://www.colorsontheweb.com/colorwizard.asp#wizard), wiki (http://ru.wikipedia.org/wiki/Цвета_в_Web), рисковский скрн (1.img в примерах у нюка. взял в палитре pulsar - для orthodox'а все еще проще, чего не скажешь про alone, в прочем и для него в одноэкранной графике проблем нет).

вобщем предложение следующее использовать не зеленые, не синие, не красные цвета в основном с "экстра" яркостью. использовать коричневые, розовые, малиново-вишневые цвета не вижу смысла слишком в них легко на глаз "запутаться". вот, что получилось:


http://zx.pk.ru/attachment.php?attachmentid=13528&stc=1&d=1254387360

ffa500
00a5ff
00ffa5 00ee69 3cb371
ffa500 - orange, 3cb371 - mediumseagreen.

pROF^4D
01.10.2009, 18:44
Итак, теперь загрузка файлов отдельно, конвертация отдельно. Загруженные файлы хранятся на сервере в течении часа (это обсуждаемо) и видит их любой посетитель. Если загрузить ZIP, он автоматом распаковывается.


1. Можно всегда и руками сконвертить, то что нехочешь "светить". Так что насчет "хранения" никаких возражений, лично я, не имею.
2. А если у меня в ZIP'e 500 файлов и все нужны, по одной картинке потом отмечать что конвертить?



P.S. Нарисовал на работе "Favicon" для твоей странички, чтобы в закладках легче искать было. Если понравится, вставляй.

nyuk
01.10.2009, 19:35
у меня вполне комфортно, вот только медленнее картинка стала конвертиться, что несколько настораживает. кстати, сейчас она где конвертиться на клиенте или на сервере? видимо на сервере...
Механизм не изменился, конвертирование как и раньше на сервере. Добавилось выполнение ява-скрипта при отображении (отрисовка диалогового окна), наверное из-за этого тормозит. В Google Chrome быстрее всего работает. Ну и в сафари навено тоже, у меня его нет.
Если будет много жалоб на скорость, можно же и light-версию сделать. Конвертеру без разницы, кому отдавать результат. Хоть в wap-версию сайта :-)


вобщем предложение следующее использовать не зеленые, не синие, не красные цвета в основном с "экстра" яркостью. использовать коричневые, розовые, малиново-вишневые цвета не вижу смысла слишком в них легко на глаз "запутаться". вот, что получилось:
Ок. Прикручиваю эти.


А если у меня в ZIP'e 500 файлов и все нужны, по одной картинке потом отмечать что конвертить?
Там есть кнопочка Add all над списком файлов.

В будущем (очень потом), можно ввести понятие сессий. Чтобы у каждого юзера был свой список файлов. Авторизацию к такому проекту я думаю нет смысла прикручивать. Тогда загруженные картинки можно будет вообще не удалять, места они немного занимают. Или сделать удаление вручную.

Кстати, не проверял скрипт на больших архивах. Возможно, сервер по таймауту остановит конвертацию...


P.S. Нарисовал на работе "Favicon" для твоей странички, чтобы в закладках легче искать было. Если понравится, вставляй.
Спасибо! Обязательно вставлю. Сам не люблю, когда сайт без иконки.

nyuk
04.10.2009, 15:13
Залил поддержку мультигиги. Пока только mgs. И только 8x1. И без всяких проверок версии формата файла. В общем, потестить. Я залил на потетсить файлик shephard.mgs из дистрибутива multiArtist, он "защищен", т.е. автоудаляться не будет.

Бордер для mgs берется из файла, т.е. выбор в форме игнорируется.

Прикрутил масштаб 0.5х. Какая там интерполяция понятия не имею, всё делается через функцию imagecopyresampled, а у неё нет вариантов. А вручную масштабировать я даже не знаю, не силен...

pROF^4D
04.10.2009, 15:30
У Риска 2е картинки нарисованные в реальном mgs, "Way to the Innocence" (Dihalt'09 - 8X1) и "Animeeshon" (Sundown'09 - 8X2 ). Остальное гигаскрин. Пусть он меня поправить, если путаю.

pulsar
04.10.2009, 20:25
Залил поддержку мультигиги.
вот это молодец! уж было подумал, что слегка подзабил...

Пока только mgs. И только 8x1.
если поддержать 100% mgs правильно (все CharSize, включая CharSize=1), то ты поддержишь все возможные режимы мультигиги, которые даже еще не придуманы! т.к. mgs на 100% не достижим на спеке (CharSize=1), и лучше него, двухэкранного мультиколора не будет.

Бордер для mgs берется из файла, т.е. выбор в форме игнорируется.
отлично! только сделай так еще:

у тебя по дефолту стоит картинка без бордера, сделай ее с small бордером

Прикрутил масштаб 0.5х. Какая там интерполяция понятия не имею, всё делается через функцию imagecopyresampled, а у неё нет вариантов. А вручную масштабировать я даже не знаю, не силен...
отлично! и не парься интерполяция самая что ни наесть лучшая - линейная! проверил.

допинывай полностью mgs (чистый) уже что-то получается. допинай его обязательно! на вырост как говорится, а то тут у меня идея есть насчет еще двух мультигига режимов очень перспективных (которые mgs перекроет)! реализую как появится возможность. а вообще надо еще:

mg1, mg2, mg4, mg8.

и еще:

Ок. Прикручиваю эти.
по идее не сложно совсем.

потом еще кое-что не большое останется, а потом... а потом... еще идеи не кончились!

---------- Post added at 22:23 ---------- Previous post was at 21:55 ----------

ах, вот еще, что для картинок [example] тоже указывай расширение! чтоб все было понятно.

---------- Post added at 22:25 ---------- Previous post was at 22:23 ----------

кстати, тот же mg8 делать вообще нечего! это практически тот же img, чуть-чуть только не так в области атрибутов, и с заголовком в котором нужен, по сути, только бордер.

nyuk
04.10.2009, 21:18
Не то, чтобы подзабил. Работа ведь еще есть...
По мере появления свободного времени доделываю.

nyuk
05.10.2009, 01:42
В общем, вроде разобрался, в чем был не прав с mgs. Теперь все обе mgs-картинки отображаются правильно. Т.о. все форматы mgs работают. 8x4 не проверял, но думаю с ним проблем не будет.
Далее будут mg1...mg8

pulsar
05.10.2009, 09:27
В общем, вроде разобрался, в чем был не прав с mgs. Теперь все обе mgs-картинки отображаются правильно. Т.о. все форматы mgs работают. Далее будут mg1...mg8
посмотрел, все отлично! раз mgs 100% реализован думаю mg1...mg8 дело совсем ближайшего времени.

8x4 не проверял, но думаю с ним проблем не будет.
рисованной релиженой такой картинки не существует пока не одной, разве только у tmk... но сильно сомневаюсь, что он до нового года ей хотя бы для тестов поделится.

давай добивай mg(x) и прозрачные цвета, потом еще кое-что подкину.

---------- Post added at 11:27 ---------- Previous post was at 11:05 ----------

ах, да mgs надо тоже оставить, как один из поддерживаемых форматов!

если поддержать 100% mgs правильно (все CharSize, включая CharSize=1), то ты поддержишь все возможные режимы мультигиги, которые даже еще не придуманы! т.к. mgs на 100% не достижим на спеке (CharSize=1), и лучше него, двухэкранного мультиколора не будет.


на вырост как говорится, а то тут у меня идея есть насчет еще двух мультигига режимов очень перспективных (которые mgs перекроет)!

nyuk
05.10.2009, 09:53
Выложил текущие исходники конвертера: http://nyuk.retropc.ru/speccy/
В комплекте простенький пример, который делает тоже самое, но без аякса и прочих вебдванолей.

Может получится так, что до выходных не найду времени позаниматься проектом :-(
А может и найду...

pulsar
05.10.2009, 15:09
Выложил текущие исходники конвертера: http://nyuk.retropc.ru/speccy/
вот это правильно! пока еще народ осознает всю нужность этой тулзы пройдет от полугода до 5 лет, ее в интернете уже может и не быть вовсе... кто-нибудь возьмется изобретать велосипед снова - будет во что носом ткнуть.

скачал, дело будет жить. сами исходники у меня пока будут просто лежать, сам до них доберусь не скоро наверное - так что надеюсь из того что есть хоть что-то собрать спустя время удастся или понять общие принципы, если будет надо.

если тулза приобретет законченные очертания возможно по исходникам стоит продолжить как говорится: "углубив и расширив".

newart
05.10.2009, 15:40
Выложил текущие исходники конвертера: http://nyuk.retropc.ru/speccy/
В комплекте простенький пример, который делает тоже самое, но без аякса и прочих вебдванолей.
Выдает сообщение: Incorrect uploaded file.

---------- Post added at 15:38 ---------- Previous post was at 15:36 ----------

(если подсунуть ZIP с SCR)
А на непаковный SCR выдает: Notice: Undefined index: secondFrame in /home/httpd/vhosts/****/httpdocs/t/ZXGFX-0.4.php on line 241

---------- Post added at 15:40 ---------- Previous post was at 15:38 ----------

На другом хостинге SCR скушал нормельно.

nyuk
05.10.2009, 19:12
Выдает сообщение: Incorrect uploaded file. (если подсунуть ZIP с SCR)
В исходниках только сам конвертер. Работой с ZIP занимается другой код. Я могу его тоже выложить, но он уже завязано на фреймворк (Yii), соответственно нужно ставить сам фреймворк, разворачивать проект. Всего около 1500 файлов объемом около 10 метров. Ну или переписывать в standalone...


А на непаковный SCR выдает: Notice: Undefined index: secondFrame in /home/httpd/vhosts/****/httpdocs/t/ZXGFX-0.4.php on line 241
На другом хостинге SCR скушал нормельно.
Отключи варнинги в РНР. Или поправь строчку 142:

$options = array();
Заменить на:

$options = array('secondFrame' => false);

pulsar
05.10.2009, 22:55
пока суть да дело накидал маленькую новость на speccy-live (http://speccy-live.untergrund.net/?s=speccy+online+tools%3A+gfx+converter&x=0&y=0)

nyuk
05.10.2009, 23:11
ага, уже читал. RSS работает :-)

newart
06.10.2009, 00:41
Заменить на:
Тогда получается :

Размеры: 0 x 0 пикселей
Глубина: 0 битов на пиксел
Размер картинки: 8,4 KБ (8*568 байт)

самой картинки нет.

---------- Post added at 00:41 ---------- Previous post was at 00:38 ----------

Точнее картика есть, но битая. А в теле нашел вот что: "<br />
<b>Notice</b>: Undefined variable: y in <b>/home/httpd/vhosts/***/httpdocs/t/ZXGFX-0.4.php</b> on line <b>410</b><br />"

nyuk
06.10.2009, 01:10
Включу у себя на локалхосте вывод всех варнингов, постепенно повылизываю.
Ну а пока просто менять error_reporting

nyuk
09.10.2009, 17:57
Выложил новую версию.
- Теперь с поддержкой цветов для INK=PAPER
- Теперь с поддержкой mg1..mg8
Исходники тоже обновил.

pulsar
09.10.2009, 18:54
Выложил новую версию.
спасибо.

если думаешь, что делать дальше, казалось бы серверная модель полностью реализована... вот еще какой монет есть, уверен будет полезно. нужен черезстрочник как на картинах в аттаче для зума х2(х3), и это уже, кажется, последняя капля для серверной модели из ходя из того, что необходимо. что надо посмотришь на картинках. теперь как? надо первую картинку - png с черезстрочкиком - 1 строка прозрачная, вторая 100% черная, ее накладывать с прозрачностью (опять же нужен выбор 0%, 25%, 50%, 100% - больше кажется не нужно) на исходное изображение.

если будет желание там на картинках есть еще варианты с блуром...

nyuk
09.10.2009, 18:59
вот как делать блур даже примерно не представляю.
а черезстрочник занесу в туду.

pulsar
09.10.2009, 19:06
а черезстрочник занесу в туду.
ок

вот как делать блур даже примерно не представляю.
блур конечно дело не столь критичное как скажем черезстрочник. хорошо, попробую поглядеть, что можно сделать гляну функции gd наверняка ведь есть!

---------- Post added at 21:06 ---------- Previous post was at 21:03 ----------

да по поводу блура глянь в гугле http://www.google.ru/search?hl=ru&source=hp&q=php+gd+blur&btnG=Поиск+в+Google&lr=&aq=f&oq= (http://www.google.ru/search?hl=ru&source=hp&q=php+gd+blur&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq=) тебе из этого ничего не подойдет? если нет поищу иначе, а ты глянь и скажи.

nyuk
09.10.2009, 19:34
глянул по диагонали, думаю можно подобрать из того, что гугль предлагает

moroz1999
10.10.2009, 14:33
в ограниченных количествах блур в GD можно сделать через матрицу конволюции.
http://ee.php.net/manual/en/function.imageconvolution.php - здесь второй пример.

pulsar
10.10.2009, 16:57
!

nyuk
27.10.2009, 01:16
Прикрутил фильтры интерлив и блюр. Интерлив со 100% прозрачностью делать не стал, смысла нет, сделал 0%, 25%, 50% и 75%.

pulsar
27.10.2009, 05:33
nyuk, это то что надо! все со спековским экраном в интернете вопрос закрыт уж точно на 75%. исходники смотрю обновил, вот только скачать не могу - not found...

вот бы эту технологию обкатать еще на чем-то более приближенном к жизни - скажем на этом или твоем форуме zx-spectrum.ru (http://zx-spectrum.ru/).

nyuk
27.10.2009, 08:19
Исходники перевыложил, теперь качаются.

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

А zx-spectrum.ru проект не мой :-)

pulsar
27.10.2009, 18:25
вечером чуть внимательнее стал разглядывать конверторок и заметил проблемку для х3 черезстрочник должен иметь вид не 01.. (поворот на 90 градусов) как для х2, а 010010.. где 1 = 100% прозрачный пиксел.

nyuk
27.10.2009, 19:30
т.е. две линии оставляем как есть, потом одну с фильтром и т.д. так?

pulsar
27.10.2009, 19:55
чтобы долго не объяснять на пальцах в аттаче 2 файлика. 2.gif - на что накладываем, 1.gif - что накладываем (делаем прозрачным на сколько это нужно). надеюсь так быстрее и понятнее.

nyuk
27.10.2009, 20:33
ок. а уровни прозрачности такие же будут? (0%, 25%, 50%, 75%)

pulsar
27.10.2009, 20:39
ок. а уровни прозрачности такие же будут? (0%, 25%, 50%, 75%)
да.

nyuk
09.11.2009, 21:34
pulsar, я там поправил черезстрочник для масштаба х3. Посмотри, я правильно тебя понял?

newart
09.11.2009, 21:50
А блюр можно поменьше сделать?
Для 2x мне он показался избыточным, процентов на 25% уменьшить бы.

pulsar
09.11.2009, 22:21
pulsar, я там поправил черезстрочник для масштаба х3. Посмотри, я правильно тебя понял?
ООО! молодчинка то что надо, уж было думал... что-то долго добивал... отлично! все так и должно быть.


он показался избыточным
имхо, вполне нормально, но если вдруг опционально появится блюр меньшей мощности будет тоже не плохо. хотя, повторюсь, меня и этот вполне устраивает.

---------- Post added at 00:13 ---------- Previous post was at 00:12 ----------

ладно, я дальше кодить ушел.

---------- Post added at 00:17 ---------- Previous post was at 00:13 ----------

ах, да, nyuk, хотел еще попросить - сделай по дефолту 75% прозрачность в черестрочнике если выбран режим постпроцесса, ок?

---------- Post added at 00:21 ---------- Previous post was at 00:17 ----------

и вот еще что, взялся тестировать х3 - так все же глюк! уже не такой страшный как раньше, но все равно глюк! суть в чем? надо что бы яркой была середина (средняя линия) пиксела 3х3, а у тебя сейчас самый нижний пиксел (линия) в вертикальной тройке, так что "поднимай" текстуру постпроцесса на пиксел вверх и все будет ок!

nyuk
09.11.2009, 23:50
что-то долго добивал...
Дак работы-то на несколько минут. Проблема найти эти минуты.

В общем, поправил. И сделал 75% интерлейс дефолтным. Добавил новый вариант блюра - "Light Blur". Старый соответственно "Gaussian Blur".

nyuk
11.11.2009, 01:38
Ну раз пока вопросов нет, обновил исходники на сайте до последней версии (0.43)

newart
18.11.2009, 07:56
Ну раз пока вопросов нет, обновил исходники на сайте до последней версии (0.43)
Есть маленькая просьба, сделать определение наличия надписей скрытых под атрибутами.

Критерии такие: >=1 знакомеcто скрытое атрибутами с >=1 байтом отличным от 0/255.

nyuk
18.11.2009, 08:39
Не знаю... Если автор скрыл такой текст, то лучше по умолчанию его и не показывать.
А делать опцию автоопределения смысла нет - тоже самое будет, если принудительно включить показ скрытых пикселей.

Если только для использования библиотеки в других проектах.

newart
18.11.2009, 17:34
Если только для использования библиотеки в других проектах.
Об этом и речь...

nyuk
18.11.2009, 18:26
ок, сделаю

nyuk
19.11.2009, 08:25
nyuk, сделай поддержку 3-color (RGB) графики.
А есть какие-нибудь описания 3-color?

одно удручает - нет версии exe для win/linux/cross. так понимаю, что это нереально в короткие сроки сделать.
Года 3-4 назад смотрел "превращалки" PHP->exe, всё что увидел очень огорчило. Посмотрю, может сейчас что-то дельное появилось...

Shadow Maker
19.11.2009, 16:33
riskej, пожалуй в каждом дистрибутиве линуха есть возможность поднять web-server. Ну в винде можно апач с пхп скачать. Осталось nyuk'a развести на исходники :)

pulsar
20.11.2009, 05:50
А есть какие-нибудь описания 3-color?
как вариант 8COL012.ZIP (http://trd.speccy.cz/system/8COL012.ZIP) там текстовый файлик инфы мало но мне бы хватило. всем известная суть - непакованая картинка это 3 черно-белых картинки (3х6144 байт) каждая из которых определяет свою составляющую (rgb, brg...) тот или иной вариант следует из расширения файла. т.е. суть в том что на такую картинку тратится 3 фрэйма, за фрэйм показывается одна из картинок (r или g или b).

надо опять же noflic.

nyuk
20.11.2009, 10:57
riskej, пожалуй в каждом дистрибутиве линуха есть возможность поднять web-server. Ну в винде можно апач с пхп скачать. Осталось nyuk'a развести на исходники
Под виндой я юзаю Denwer (http://www.denwer.ru/). Очень удобно, ни с какими серверами разбираться не надо.
Исходники я собсно не скрываю. Сама библиотека на сайте выложена, вместе с примером и мини-докой. Если нужно все остальное, могу отрезать от сайта и тоже выложить. Правда там нужно Yii фреймворк ставить, но сложного ничего нет.

newart
20.11.2009, 12:43
Кстати в todo можно еще записать опцию оптимизации картинки на предмет межзнакоместных полосок.

nyuk
20.11.2009, 12:56
Кстати в todo можно еще записать опцию оптимизации картинки на предмет межзнакоместных полосок.
А это как?

newart
20.11.2009, 13:05
Тута (http://zx.pk.ru/showthread.php?goto=newpost&t=11326) описано.

Shadow Maker
20.11.2009, 14:44
Под виндой я юзаю Denwer (http://www.denwer.ru/). Очень удобно, ни с какими серверами разбираться не надо.
Ну Денвер это и есть сборка Апача, Мускула и пыха.

nyuk
20.11.2009, 16:02
Известный то ли глюк, то ли хз как его назвать. При нахождении рядом пары инвертированных знакомест (то есть белый-голубой, а рядом например голубой-белый) на их границе получается как бы полоска выделяющегося цвета.
Смутно припоминаю... Вроде полоса вертикальная. Или горизонтальная тоже? А появляется исключительно на инвертированных атрибутах? Или проще в анриле посмотреть с фильтром.


Ну Денвер это и есть сборка Апача, Мускула и пыха.
Ну да. Просто не надо возиться с установкой/настройкой серверов. А вообще, имхо изварт это всё - переводить онлайн-проект в оффлайн. Если найдется добрый дядя Кто Нибудь, который перепишет всё это на сях или что там используют сейчас, было бы хорошо. Нет, дак попробую сам придумать что-нибудь с оффлайн-версией.

Shadow Maker
20.11.2009, 16:16
Смутно припоминаю... Вроде полоса вертикальная. Или горизонтальная тоже? А появляется исключительно на инвертированных атрибутах? Или проще в анриле посмотреть с фильтром.
Вертикальная только. Проявляется я тоже не помню где, ну там в BORNDEAD #10 cj свою тулзу поместил, можешь посмотреть как работает и сделать так же.


Ну да. Просто не надо возиться с установкой/настройкой серверов. А вообще, имхо изварт это всё - переводить онлайн-проект в оффлайн. Если найдется добрый дядя Кто Нибудь, который перепишет всё это на сях или что там используют сейчас, было бы хорошо. Нет, дак попробую сам придумать что-нибудь с оффлайн-версией.
Ну у меня линуксовый сервер сам по себе стоит, так что мне проще.

psndcj
25.11.2009, 23:11
триколор же в стандарте - это же вроде пакованный блок с депакером? или я ошибаюсь? Но QSV вроде только такие показывал... и в ZX-Format'е описывалось както так.

pulsar
26.11.2009, 17:29
триколор же в стандарте - это же вроде пакованный блок с депакером? или я ошибаюсь?
жень, ошибаешься) или запамятовал...

Но QSV вроде только такие показывал...
неа, не только пакованные. вот запусти к примеру тот же qsv (сейчас только смотрел 2ю версию) и глянь там есть строка в описании форматов - rgb 18432 байта с любым расширением. такие картинки выгружает j'евская aga, 8color (alco) это из основного.

пакованный формат, имхо, nyuk'овскому конвертеру нафиг не нужен, ну, или как свистелка, если не лень с депакером возится... но что-то не наблюдаю рвения поддерживать пакованные стандартные картинки, гигу... ибо... всегда можно получить не пакованную графику, во всяком случае на спеке.

nyuk
01.12.2009, 23:22
В общем, в туду я занес, но начну что-то делать не раньше января. Такие дела.

pulsar
02.12.2009, 18:02
В общем, в туду я занес
гут.

alone
03.12.2009, 19:16
rgb 18432 байта с любым расширением. такие картинки выгружает j'евская aga
AGA выгружает BRG с расширением .3, этот формат я брал за стандарт. Кроме него есть куча левых форматов (например, с линейной адресацией). А вот упакованный блок (расширение .Y) - это RGB, появился исторически раньше, чем AGA, но в редакторах как выходной формат неюзабелен.

pulsar
15.12.2009, 18:33
привет, nyuk. ну, как ты там, дальше когда планируешь конвертер бить? триколоры... сегодня еще один мега косяк всплыл - риска сегодня кучу графики конвертил, заливая ее зип архивом, - не к чему всю залитую в зипе графику выкладывать для просмотра, а представь пати бы прошла/шла... так что надо срочно пофиксить! чтобы вся залитая в зипе графика улетала только тому кто ее заливал и ни где больше не дублировалась.

pulsar
15.12.2009, 20:12
elf/2, оно пока не надо, когда посмотрю не известно, но ты мне одно скажи, что там с палитрами (вот, что самое главное - надеюсь не очередной велосипед - должно быть как у нюка!!), фильтрами, масштабами... и да муьтиконвертация нужна, если уж делаешь... в общем ориентируйся на нюка, если будет также думаю можно использовать будет, если оно надо будет.

---------- Post added at 22:12 ---------- Previous post was at 22:04 ----------

elf/2, да, и кстати, а почему обсуждение твоей разработки не в отдельной теме? зачем все в кучу мешать?

elf/2
15.12.2009, 23:03
почему обсуждение твоей разработки не в отдельной теме? зачем все в кучу мешать?
логично, перенес (http://zx.pk.ru/showthread.php?t=11560)


но ты мне одно скажи, что там с палитрами (вот, что самое главное - надеюсь не очередной велосипед - должно быть как у нюка!!), фильтрами, масштабами... и да муьтиконвертация нужна, если уж делаешь...
100% очередной велосипед :), но палитры (твоя по умолчанию), масштабы, бордюры, мультиконвертация и анимация присутствуют.

плюсом: 3колоры, хобета и можно пользовать в отсутствии интернета ;)

nyuk
15.12.2009, 23:53
дальше когда планируешь конвертер бить? триколоры...
До конца года полный аврал, так что в январе, не раньше.


чтобы вся залитая в зипе графика улетала только тому кто ее заливал и ни где больше не дублировалась.
Давай скрою всё кроме примеров?


можно пользовать в отсутствии интернета
Ну значит на счет офлайн версии можно не париться :-)

---------- Post added at 23:53 ---------- Previous post was at 23:51 ----------

Кстати, картинки автоматически удаляются через час после загрузки. Правда проверка сделана не на открытие страницы, а при загрузке. Т.е. если через час что-то загрузить, то все старвые подчистятся.

elf/2
16.12.2009, 00:24
Ну значит на счет офлайн версии можно не париться :-)
только при условии что pulsar даст добро :)

pulsar
16.12.2009, 05:23
Давай скрою всё кроме примеров?
давай пока так, хотя это и не лучший вариант, но пару неделек потерпим.

только при условии что pulsar даст добро
смеюсь, надо посмотреть все же твою версию, вечером может гляну.

nyuk
14.03.2010, 13:42
Обновил конвертер.
Добавил поддержку непакованных RGB.

Сделал разделение на приватный/публичный каталог. Файлы, загруженный в public видны всем, загруженные в private - только загрузившему.
Поскольку появилась возможность чистить приватный каталог, то увеличил срок хранения файлов до 10 дней. Но пользоваться конвертером как хранилищем не советую, т.к. куку потерял - файлы не найти.

В целом какая-то не совсем вменяемая хрень получилась. Но прикручивать человеческую регистрацию/авторизацию все равно не хочу.

newart
14.03.2010, 20:47
Караул!
В x0.5 в GIF конвертит с дитерингом!!

nyuk
14.03.2010, 21:14
Караул!
В x0.5 в GIF конвертит с дитерингом!!
Да там ничего и не менялось.
Поднял предыдущую версию, сравнил - картинки одинаковые.

newart
14.03.2010, 21:36
Да там ничего и не менялось.
Поднял предыдущую версию, сравнил - картинки одинаковые.
Это баг вообще, а не последней версии.

nyuk
14.03.2010, 23:45
Ну можно ресайзить еще через imagecopyresized. Получается ужос, как на вложении. А писать свой алгоритм ресайза я не возьмусь.

diver
10.08.2010, 19:49
сабж перестал принимать зип архивы :( только по одному файлу добавлять.

moroz1999
10.08.2010, 22:31
Караул!
В x0.5 в GIF конвертит с дитерингом!!
Кстати, проблема может быть из-за того, что gd2 не особо заморачивается с сохранением оригинальной палитры при конверсии truecolor объекта в объект с палитрой.
Фиксится, к примеру, так:


$palettedResource = imagecreate(imagesx($srcResource), imagesy($srcResource));
imagecopy($palettedResource, $srcResource, 0, 0, 0, 0, imagesx($srcResource), imagesy($srcResource));
imagecolormatch($palettedResource, $srcResource);
imagegif($palettedResource, $destinationPath);

То есть, создаем объект с палитрой, копируем в него содержимое, синхронизируем его палитру с оригиналом при помощи imagecolormatch, а потом уже делаем из него gif.
Мумба-юмба, мать её, а не gd2. Без этого гениального преобразования у меня тоже был дитеринг на GIF-файлах, хотя общее количество цветов не превышало 255.

nyuk
25.09.2012, 11:10
По "многочисленным" просьбам обновил интерфейс конвертера.
Основные изменения: максимально увеличенный по высоте список файлов и сортировка по имени файла.