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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TIFF, Работа с TIFF 
:(
    Опции темы
myendlessness
Дата 11.5.2009, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 Ребята помогите пожалуйста разобраться со следующей задачей. У меня есть файл TIFF и мне необходимо получить(перегнать в) битовую информацию. Никогда не занимался подобными задачами и с трудом представляю как это выглядит! Может кто-то поможет с кодом и если не трудно выкладывайте ссылки где об этом можно почитать, чтобы разобраться Всем Спасибо!   
PM MAIL   Вверх
Madonna
Дата 11.5.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Forbidden love...
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 22.1.2009
Где: Москва

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



//delete
Partizan, может сериализовать?

Это сообщение отредактировал(а) Madonna - 11.5.2009, 17:00
--------------------
Best regards, Madonna
PM   Вверх
Partizan
Дата 11.5.2009, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



а что значит "перегнать в битовую информацию"?

http://www.codeproject.com/KB/GDI-plus/Bit...eConverter.aspx

http://ru.wikipedia.org/wiki/TIFF


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
myendlessness
Дата 12.5.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

Добавлено через 4 минуты и 17 секунд
Забыл добавить, что этот формат может хранить не только картинку, поэтому стоит задача сжимать файл данного формата вне зависимости от его содержимого! 
PM MAIL   Вверх
Partizan
Дата 12.5.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



myendlessness, ну тогда можно просто побайтово прочитать файл.

курить msdn по классу FileStream


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
myendlessness
Дата 14.5.2009, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

http://www.codeproject.com/KB/GDI-plus/Bit...eConverter.aspx
partners.adobe.com/public/developer/en/tiff/TIFF6.pdf
http://www.leadtools.com/Utilities/TIFF_Ed...TIFF-Editor.htm
PM MAIL   Вверх
myendlessness
Дата 14.5.2009, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



PM MAIL   Вверх
myendlessness
Дата 22.5.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ребята не бейти меня сильно ногами, а лучше подаскажите, пожалуйста, вот у меня такой код чтения Tiff в Txt правда там не байты выдаёт, а чар в нотпад.  
     
  do
            {
              i = Tiff.ReadByte();
              if (i != -1) Txt.WriteByte((byte)i); 
            } while (i != -1);

Так вот в чём вопрос, есть у мня структура Tiff, но я ничего не могу понять. Например если я хочу только данные, которые касаются конкретно картинки прочитать и сжать, то с какого бйта мне нужно читать? А с какого по какой байт содерждится информация о картинке? Выкладываю структуру Tiffа  может кто разберётся.  
   Есть ещё EncoderDecoder, но я не понимаю как его использовать для моей задачи!  

A Sample Bilevel TIFF File

Offset                     Description                                     Value
(hex)    
                                                            (numeric values are expressed in hexadecimal notation)
Header:
0000                      Byte Order                                       4D4D
0002                      42                                                    002A
0004                     1st IFD offset                                    00000014
IFD:
0014                     Number of Directory Entries              000C
0016                     NewSubfileType 00FE                        0004 00000001 00000000
0022                     ImageWidth                                       0100 0004 00000001 000007D0
002E                     ImageLength                                     0101 0004 00000001 00000BB8
003A                     Compression                                      0103 0003 00000001 8005 0000
0046                     PhotometricInterpretation                 0106 0003 00000001 0001 0000
0052                     StripOffsets                                       0111 0004 000000BC 000000B6
005E                     RowsPerStrip                                     0116 0004 00000001 00000010
006A                     StripByteCounts                                0117 0003 000000BC 000003A6
0076                     XResolution                                       011A 0005 00000001 00000696
0082                     YResolution                                        011B 0005 00000001 0000069E
008E                     Software                                            0131 0002 0000000E 000006A6
009A                     DateTime                                            0132 0002 00000014 000006B6
00A6                     Next IFD offset                                   00000000

Values longer than 4 bytes:
00B6                     StripOffsets                                         Offset0, Offset1, ... Offset187
03A6                      StripByteCounts                                 Count0, Count1, ... Count187
0696                      XResolution                                         0000012C 00000001
069E                      YResolution                                         0000012C 00000001
06A6                      Software                                             “PageMaker 4.0”
06B6                      DateTime                                            “1988:02:18 13:59:59”

Image Data:
00000700                                                                          Compressed data for strip 10
xxxxxxxx                                                                            Compressed data for strip 179
xxxxxxxx                                                                            Compressed data for strip 53
xxxxxxxx                                                                            Compressed data for strip 160
.
PM MAIL   Вверх
myendlessness
Дата 1.6.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Может быть, кто-нибудь подскажет, суть такая: я декодирую картинку вот так:

TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[0]; 

Затем копирую из неё массив пикселей, и часть из этих пикселей меняю:

stride1 = bitmapSource.PixelWidth * 4;
            decoder.Frames[0].CopyPixels(pixels1, stride1, 0);
            
            for (int k = 0; k < 1791; k++)
            {
                pixels[k] = pixels1[k];
            }
            
            for (int k = 1791; k < 691200; k++) 
            {
                pixels[k] = (byte) 255; 
            }

Первым циклом читаю и записываю данные об изобюражении
Вторым непосредственно записываю сами Image data

Теперь я не могу понять как мне создать картинку из массива пикселей, который я получил(pixels), то есть в конечном итоге должна получится новая картинка? 

Может я избрал не совсем верный подход, в чём моя ошибка?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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