Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2009, 23:29   #1
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию jpeg,gif файлы

делаю курсак на WinAPI
задание следующее :
реализовать нечто подобное на телефонную базу абонентов с поддержкой фотографий (jpeg,gif,bmp).

Описал такую вот структуру

Код:
typedef struct info {

           int phone;
           int date;
           char adress[20];
	char name[20];
	char work[20];
              
}INFO;
так вот вопросы:
1. как в этой структуре описать фотку?
2. как записать эту фотку в файл, чтобы потом при надобности извлечь информацию об абоненте из базы и показать в окне?

В нете нашел про это кучу инфы, но толком ничего не понял как это делается.
Если кто делал нечто подобное поделитесь мыслями или ссылочки какие нибудь дайте, где это все будет описано в более простой форме...
counter вне форума Ответить с цитированием
Старый 31.01.2009, 23:48   #2
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

Описывай как массив байтов, ведь картинка - это просто матрица. Как у тебя будут храниться картинки? Если отдельными файлами - опиши просто как путь до файла тогда... Потом на форме уже выводи
r9m вне форума Ответить с цитированием
Старый 01.02.2009, 01:25   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

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

а что за чудо такое BITMAP ?
я так понял это и есть этот массив байтов?
как работать с форматами jpeg,gif - их требуется распаковывать?
counter вне форума Ответить с цитированием
Старый 01.02.2009, 12:17   #4
litrovith
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 28
По умолчанию

counter, зачем урезать картинки до нужного размера? Добавьте в свою структуру указатель на следующую и размер картинки в байтах, после структуры вписывайте в файл с БД картинку. Т.е. при загрузке в программу файла базы данных читаете phone, date, adress... узнаёте размер картинки, читаете нужное кол-во байт, показываете картинку, узнаёте на сколько байт вам нужно переместиться далее и так по циклу.
Пс. Мм я с бодуна, понятно выражаюсь?

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

Последний раз редактировалось litrovith; 01.02.2009 в 12:28.
litrovith вне форума Ответить с цитированием
Старый 01.02.2009, 14:04   #5
kiloz
Пользователь
 
Регистрация: 07.01.2009
Сообщений: 42
Радость

Можно не байти считывать, а текст
Вот примерчик, но на делфе
Код:
function BitmapToRTF(pict: TBitmap): string;
 // by D3k
var
 bi, bb, rtf: string;
 bis, bbs: Cardinal;
 achar: ShortString;
 hexpict: string;
 I: Integer;
begin
  GetDIBSizes(pict.Handle, bis, bbs);
  SetLength(bi, bis);
  SetLength(bb, bbs);
  GetDIB(pict.Handle, pict.Palette, PChar(bi)^, PChar(bb)^);
  rtf := '';
  SetLength(hexpict, (Length(bb) + Length(bi)) * 2);
  I := 2;
  for bis:=1 to Length(bi) do begin
     achar := Format('%x', [Integer(bi[bis])]);
     if Length(achar) = 1 then
       achar := '0' + achar;
     hexpict[I - 1] := achar[1];
     hexpict[I] := achar[2];
     Inc(I, 2);
  end;
  for bbs:=1 to Length(bb) do begin
    achar := Format('%x', [Integer(bb[bbs])]);
    if Length(achar) = 1 then
      achar := '0' + achar;
    hexpict[I - 1] := achar[1];
    hexpict[I] := achar[2];
    Inc(I, 2);
  end;
  rtf := rtf + hexpict;
  Result := rtf;
end;
Обратное кодировани выполняется естественно обратными действиями...
kiloz вне форума Ответить с цитированием
Старый 01.02.2009, 23:02   #6
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Спасибо за советы. Буду разбираться.
counter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jpeg warmbabe Общие вопросы по Java, Java SE, Kotlin 2 26.02.2010 20:14
Jpeg Артэс Win Api 1 29.11.2008 08:48
DBImage + jpeg + gif Cyn4uk БД в Delphi 10 23.12.2007 19:24
jpeg All517 БД в Delphi 15 22.11.2007 14:31
Как отображать в своей программе файлы *.gif с анимацией? SalasAndriy Общие вопросы C/C++ 1 02.11.2007 12:17