Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание графического формата на С#, создание формата как это делаеться*? 
:(
    Опции темы
godvinn
Дата 18.4.2009, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 4.4.2008
Где: possibility of mo ving to Kyiv

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



Здравствуйте. Есть вопрос следующего плана:
Как можно создать свой графический формат *?
Посоветуйте литературу или какой то хороший пример  smile, пожалуйста. 


--------------------
Everything happens in life.
user posted image
PM MAIL   Вверх
Rififi
Дата 18.4.2009, 16:58 (ссылка) |   (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



1. написать спецификацию формата
2. подать заявку в РосПатент (или в другую организацию, например USPTO, etc)
PM MAIL   Вверх
Bladerender
Дата 19.4.2009, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

<?xml version="1.0" encoding="UTF-8"?>
   <pictureSettings>
    <section name = 'resolution' val="320*240"/>
   </pictureSettings>
   <points>
             <point r="0", g="256",b="0" /> //как бы описываем одну точку в формате RGB.
             <point r="256", g="256",b="15" /> //как бы описываем еще одну точку
              ...
              ...
   </points>
</xml>


Ну что-то типа такого. Понятно что твой графический формат сможет прочитать только твой графический просмотрщик (редактор). Но если он получиться зашибатый, то его поддержкой обзаведуться всякие АйСидиси и т.д.
В своем просмотрщике щитываеш каждую точку и рисуеш ее на экране. Или так же ты сможеш сконвертить в свой формат картинку jpeg например, если пробежишся по всем точкам картинки и позаписываеш параметры цвета каждой точки в свой "типа xml-формат".
Следующий шаг, можно, если рядом стоият точки одинакового цвета, не делать на них несколько записей, а делать одну, например
            <point r="0", g="256",b="0", count = "5" /> //как бы описываем 5 стоящих рядом точек.
Когда дойдеш до этой строчки в своем файле, то этот параметр укажет тебе, что нужно нарисовать 5 точек подряд одного цвета.
Это уже получаеться у тебя будет внедрен один из алгоритмов компресии. НУ и там уже фантазия.
Можно не привызяваться к xml (что бы формат был меньшего размера), но тогда тебе нужно будет писать парсер на твоф формат и изощраться в методах сохранения информации о точках картинки.

PS: Если на карсач, то и так пойдет, а если комерческое приложение, то там уже в зависимости от требований. Если маленький размер, то xml не подойдет однозначно.

PPS: За обьяснения строго не судите, так как показалось что Вы начинающий программист и потому обьяснял на пальцах.

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 4.4.2008
Где: possibility of mo ving to Kyiv

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



Bladerender,  это даже не на курсач а на лабораторную ))). 

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


--------------------
Everything happens in life.
user posted image
PM MAIL   Вверх
Bogdan1024
Дата 20.4.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Мм. Возьми обычный бмп, сожми и зашифруй его. Вот те мегоформат. То шо надо для лабораторной ;)


--------------------
user posted image
PM MAIL   Вверх
Bladerender
Дата 21.4.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(godvinn @ 20.4.2009,  22:12)
Bladerender,  это даже не на курсач а на лабораторную ))). 

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

Блин. Помоиму то что я написал проще не бывает. Линков дать не могу, так как это все равно что искать как открывать бутылку пива. Если не хочеш морочиться с xml, то попробую написать по шагам, что нужно делать. Все что тебе нужно знать - что в растровых графических форматах каждая точка описываеться тремя числами. Любой цвет можно получить смешав в определенных количествах красный, зеленый и голубой. Так называемое RGB (red, green, blue). Получаеться что картинку можно представить как двумерный массив точек, где каждая точка имеет 3 числа.
Например вот тебе описанная картинка 3*3.
         [156,30,80]    [29,18,58]    [231,19,160]
         [50,95,30]      [95,128,93]  [34,74,23]
         [165,156,189][34,78,243]  [5,23,78]
Если будет 1024*768 то будет большая матрица.
Тебе получаеться нужно просто записать информацию про точки картинки в файл, ну и конечно потом уметь прочитать эту информацию и порисовать опираясь на эту инфорацию точки. Впринцыпе это не сложно, так как в любом Canvas есть метод "Нарисовать точку" где ты передаеш туда Top и Left (координаты где будет она нарисована) и цвета в RGB, тоесть оте цифры, что ты запомнил.
Вот и всё.
PM MAIL   Вверх
godvinn
Дата 28.4.2009, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 4.4.2008
Где: possibility of mo ving to Kyiv

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



Bladerender,  то есть файл должен иметь вид 

Код

156,30,80 29,18,58 231,19,160
50,95,30 95,128,93 34,74,23
165,156,189 34,78,243 5,23,78

?

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



--------------------
Everything happens in life.
user posted image
PM MAIL   Вверх
Bladerender
Дата 1.5.2009, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Извини что так долго не отвечал. Думал вопрос ищерпан. 
Нет, не такой вид. Пиксель нельзя описать одним числом. Он описываеться тремя цветами. http://ru.wikipedia.org/wiki/Растровая_графика 
Пристальное внимание обрати на картинку смайлика и попытайся понять все что там нарисовано.  Вот еще . http://ru.wikipedia.org/wiki/RGB  Тоже почитай.

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


 Все остальный вопросы давай в аську. 390-304-253.

Это сообщение отредактировал(а) Bladerender - 1.5.2009, 08:57
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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