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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2012, 20:55   #1
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию HDR форматы хранения картинок

Здравствуйте, может кто встречал спецификацию хранени файлов HDR типа .hdr,.exr или может кто знает другие какието. Нужно просто перегнать в свой формат. а спецификации не нашел. Заранее благодарен.
nXs вне форума Ответить с цитированием
Старый 07.07.2012, 09:35   #2
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Цитата:
спецификации не нашел.
скорее всего не искал... OpenEXR
x128 вне форума Ответить с цитированием
Старый 12.07.2012, 13:19   #3
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Спасибо большое. Но хотелось бы еще чего то об .hdr
nXs вне форума Ответить с цитированием
Старый 12.07.2012, 19:06   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы по ссылке хотя бы первую строчку прочли?

Цитата:
OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications.
p51x вне форума Ответить с цитированием
Старый 13.07.2012, 09:15   #5
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

оставлю несколько ссылок...
http://en.wikipedia.org/wiki/Radianc...R_image_format
http://en.wikipedia.org/wiki/RGBE_image_format
http://radsite.lbl.gov/radiance/ - тут спецификации и исходники
x128 вне форума Ответить с цитированием
Старый 15.07.2012, 23:36   #6
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

2 p51x Вообще то .hdr и .exr это разные форматы файлов.
2 x128 Еще раз огромное спасибо. Чет не додумался по radiance пробить. Мне постоянно кидало чем открыть можно.
nXs вне форума Ответить с цитированием
Старый 23.07.2012, 21:36   #7
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Ребят, если не сложно. помогите перевести этот кусок кода на delphi, а то я с С++ знаком поверхностно (кое как перевожу), а тут ступор...
Код:
int RGBE_ReadHeader(FILE *fp, int *width, int *height, rgbe_header_info *info)
{
  char buf[128];
  int found_format;
  float tempf;
  int i;

  found_format = 0;
  if (info) {
    info->valid = 0;
    info->programtype[0] = 0;
    info->gamma = info->exposure = 1.0;
  }
  if (fgets(buf,sizeof(buf)/sizeof(buf[0]),fp) == NULL)
    return rgbe_error(rgbe_read_error,NULL);
  if ((buf[0] != '#')||(buf[1] != '?')) {
    /* if you want to require the magic token then uncomment the next line */
    /*return rgbe_error(rgbe_format_error,"bad initial token"); */
  }
  else if (info) {
    info->valid |= RGBE_VALID_PROGRAMTYPE;
    for(i=0;i<sizeof(info->programtype)-1;i++) {
      if ((buf[i+2] == 0) || isspace(buf[i+2]))
	break;
      info->programtype[i] = buf[i+2];
    }
    info->programtype[i] = 0;
    if (fgets(buf,sizeof(buf)/sizeof(buf[0]),fp) == 0)
      return rgbe_error(rgbe_read_error,NULL);
  }
  for(;;) {
    if ((buf[0] == 0)||(buf[0] == '\n'))
      return rgbe_error(rgbe_format_error,"no FORMAT specifier found");
    else if (strcmp(buf,"FORMAT=32-bit_rle_rgbe\n") == 0)
      break;       /* format found so break out of loop */
    else if (info && (sscanf(buf,"GAMMA=%g",&tempf) == 1)) {
      info->gamma = tempf;
      info->valid |= RGBE_VALID_GAMMA;
    }
    else if (info && (sscanf(buf,"EXPOSURE=%g",&tempf) == 1)) {
      info->exposure = tempf;
      info->valid |= RGBE_VALID_EXPOSURE;
    }
    if (fgets(buf,sizeof(buf)/sizeof(buf[0]),fp) == 0)
      return rgbe_error(rgbe_read_error,NULL);
  }
  if (fgets(buf,sizeof(buf)/sizeof(buf[0]),fp) == 0)
    return rgbe_error(rgbe_read_error,NULL);
  if (strcmp(buf,"\n") != 0)
    return rgbe_error(rgbe_format_error,
		      "missing blank line after FORMAT specifier");
  if (fgets(buf,sizeof(buf)/sizeof(buf[0]),fp) == 0)
    return rgbe_error(rgbe_read_error,NULL);
  if (sscanf(buf,"-Y %d +X %d",height,width) < 2)
    return rgbe_error(rgbe_format_error,"missing image size specifier");
  return RGBE_RETURN_SUCCESS;
}
nXs вне форума Ответить с цитированием
Старый 25.07.2012, 01:22   #8
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Я запутался в этих if, for, меня конкретно интересует как происходит чтение GAMMA и EXPOSURE, до этого с помощью winhex я дошел, но не вижу там таких параметров.
nXs вне форума Ответить с цитированием
Старый 30.07.2012, 22:00   #9
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

В общем с жедером разобрался. Возникла проблема с чтением rle даных. метод как в TGA не катит. написал такой код, и получаю соответственно картинку (при этом не всегда читается)
Код:
SetLength(Data,Header.Width*Header.Height);

for i:=0 to Header.Height-1 do
  begin
    j:=0;
    F.Read(buf,sizeof (buf)); // <-- buf:array[0..3]of byte

    while j<4 do begin
    m:=0;
    while m<Header.Width do
      begin
        F.Read(tmp,sizeof(byte));
        cnt:=Tmp and 127;
          if tmp>128 then
            begin
              F.Read(tmpValR,sizeof(byte));
                for k:=0 to cnt-1 do
                  begin
                    Data[i*header.Width+m][j]:=tmpValR;
                    inc(m);
                  end;
            end
          else
            begin
              for k:=0 to cnt-1 do
                begin
                  F.Read(Data[i*header.Width+m][j],sizeof(byte));
                  inc(m);
                end;
            end;
        end;
        inc(j);
      end;
  end;

На рисунке видно, что сначала грузится нормально, а потом какая то фигня лезет. Но вроде же rle стандарт? не может жебыть здесь какой нить модификации?
nXs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматы ячеек strannick Microsoft Office Excel 1 17.05.2012 05:27
Форматы ячеек trochn Microsoft Office Excel 1 26.01.2011 17:54
Форматы файлов Alex Cones Свободное общение 24 02.06.2010 15:13
Форматы ячеек Cannibal Microsoft Office Excel 2 01.09.2008 17:30
графические форматы bill Свободное общение 5 14.08.2007 20:19