![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
Доброе время суток!
- Столкнулся со следующей проблемой, мне необходимо показать содержимое '*.tga' файла в компоненте 'PictureBox'. - Поискав информацию в google.com, я понял, что '.tga' данные могут храниться в двух форматах: 'Запакованные/Не запакованные'. - Насколько я понял, так отличить в каком формате хранятся данные можно по 3-ему байту, который в свою очередь может принимать 9 вариантов. # Задача: Отобразить содержимое '*.tga' файла в компоненте 'PictureBox'. (Класс Image) # Спецификация формата: Wiki, FileFormat.Info, TGA format specification, Описание формата TGA, http://www.truevision.com/; Это сообщение отредактировал(а) MuForum - 18.8.2008, 11:21 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
# for all - Сделал, но подпрограмма не работает. Вылетает исключение: 'Недопустимый параметр.'
P.S. -> Где косяк? В каком месте нужно руки себе отрубить? =) Это сообщение отредактировал(а) MuForum - 15.8.2008, 15:44 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
MuForum, мне кажется .NET не поддерживает тга по умолчанию и необходимо пользоваться какими нибудь сторонними библиотеками или например той же DirectX.
|
|||
|
||||
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
А мне кажется, что ты ошибаешься, так как я видел программы написаные на Dot .NET, которые работают с '*.tga' файлами. - Например программа 'Paint.NET', и таких не мало... - Если есть голова и руки, то всё можно сделать. P.S. -> MSDN: Class PictureBox; Это сообщение отредактировал(а) MuForum - 17.8.2008, 17:45 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| MuForum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
# for all - Парни, ну ёмаё, помогите хоть советом...
- Я сделал чтение не запакованного '*.tga' файла. (То есть, у которого 3 байт равен 2)
- Всё вроде отрабатывает как надо, до момента записи изображения в класс 'Image', то есть вот на этой строчке уходит в исключение:
- Что я не правильно делаю? P.S. -> Я прикрепил архив, в котором 4 не запакованных '*.tga' файла. Это сообщение отредактировал(а) MuForum - 17.8.2008, 17:47 Присоединённый файл ( Кол-во скачиваний: 2 )
img_tga_unc.rar 23,99 Kb-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||
|
|||||
| MuForum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
# for all - Парни, и у меня получилось сделать загрузку '*.tga' файла я ппц рад, то теперь осталось решить проблему со флипом.
- на Wiki Написано следующее:
# Вопрос: Как проверить эти биты?
- Так не хочет =( -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||
|
|||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
MuForum, ну возможно в вики биты считают слева направо, поэтому стоит попробовать так:
8-4 и 8-5 можно заменить на 4 и 3 соответственно ) для ясности просто привёл) -------------------- СУВ, Partizan. |
|||
|
||||
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
# for all - Парни, немного помучившись, вот получилась функция для отображения не запакованного '*.tga' файла.
# Благодарности: Marcus[VPF], zot17[GameDev.Ru], Partizan[VPF]; Это сообщение отредактировал(а) MuForum - 18.8.2008, 18:21 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
# for all - Прочитал немало литературы, статей, форумов по поводу работы с классами Image, Bitmap и т.д., и почти везде говорят, что использование функции SetPixel() сильно сказывается на производительности.
Я на сколько смог оптимизировал алгоритм обработки массива в изображение, но может у кого-то возникнут ещё какие-то идеи по поводу оптимизации.
Я читал на форумах про класс BitmapData, но не совсем догоняю, как его прикрутить в моём случае. -- И будет ли с него вообще эффект? P.S. -> Если у кого-то есть какие-то предложения, советы, с радостью выслушаю. Это сообщение отредактировал(а) MuForum - 30.4.2009, 14:13 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 5 Всего: 36 |
MuForum,
P.S. -> Если у кого-то есть какие-то предложения, советы, с радостью выслушаю. Умеет загружать BigTIFF (>4Gb)? Умеет парсить и извлекать exif-информацию? |
|||
|
||||
| MuForum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
10, Rififi - Вопрос был именно по TAGRA формату и именно по моему коду...
- Причём тут то, что ты написал... (Читай внимательнее сообщения и заголовок темы) Это сообщение отредактировал(а) MuForum - 30.4.2009, 15:15 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
|||
|
||||
| MuForum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
# for all - Переделал класс работы с *.tga форматом под класс BitmapData.
-- Хочу заметить, что скорость обработки данных возросла примерно в 12 раз! -- Разница более чем существенная. -- Благодарю всех, кто принимал участие в данной теме, опубликовываю получившейся результат. # Результаты тестирования:
P.S. -> Если у кого-то есть ещё какие-то советы/предложения по оптимизации данного класса, высказывайте, буду благодарен. Это сообщение отредактировал(а) MuForum - 10.5.2009, 11:15 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||
|
|||||
| MuForum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
# for all - Реализовал очередную оптимизацию для чтения *.tga файлов.
1. Если файл записан слево на право, то прирост в скорости от оптимизации ~ 23%. 2. Если файл сжат алгоритмом RLE, то прирост в скорости от оптимизации ~ 34% -- + ещё 23% если файл записан слево на право, итого 56%. # Тестирование:
P.S. -> Если у кого-то есть ещё какие-то предложения по оптимизации, буду рад выслушать. Это сообщение отредактировал(а) MuForum - 10.5.2009, 13:04 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |