Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 01.02.2009, 00:29   #1
counter
Профессионал
 
Регистрация: 18.10.2008
Сообщений: 1,409
Репутация: 431
По умолчанию 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 вне форума   Ответить с цитированием
Старый 01.02.2009, 00:48   #2
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
Репутация: 180

icq: 982401
По умолчанию

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

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

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

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

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

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

Можно не байти считывать, а текст
Вот примерчик, но на делфе
Код:
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 вне форума   Ответить с цитированием
Старый 02.02.2009, 00:02   #6
counter
Профессионал
 
Регистрация: 18.10.2008
Сообщений: 1,409
Репутация: 431
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


17:49.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru