Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.21;
Скачать: CL | DM;

Вниз

TBitmap   Найти похожие ветки 

 
Res   (2008-11-11 19:57) [0]

Здравствуйте, пишу ДЛЛ к одной программе(неважно какой :D ). Она хранит изображение в PGFX. Задача: преобразовать из PGFX в BMP.
Делаю так:

var
 bmp:TBitmap;
 x,y,lx,ly:integer;
 color:TColor;
begin
 lx:=PImage.Width;
 ly:=Pimage.Height;
 bmp:=TBitmap.Create;
 bmp.Width:=PImage.Width;
 bmp.Height:=PImage.Height;
 for y:=0 to ly do
 begin
   for x:=0 to lx do
   begin
     bmp.Canvas.Pixels[x,y]:=RGB(Pimage.data.r,Pimage.data.g,Pimage.data.b);
   end;
 end;
 bmp.SaveToFile("c:\test.bmp");
 bmp.Free;

но почему то рисуется тока пиксель 0 0

 TGFX=record
   Width,Height:Integer;
   data:P32Color; {указатель на пиксель с координатами [x=0,y=0].
                   следующий за ним будет [x=1,y=0],[x=2,y=0]     ... [x=Width-1,y=0],
                   затем подряд           [x=0,y=1],[x=2,y=1]     ... [x=Width-1,y=1],
                                           ....
                                          [x=0,y=Height-1],[x=2,y=Height-1] ... [x=Width-1,y=Height-1].
                  }
 end;
 PGFX=^TGFX;
....
 T32Color=packed record
   b,g,r:byte;
   A    :byte;
 end;
 T32ColorArray=array[0..0] of T32Color;
 P32ColorArray=^T32ColorArray;
 P32Color=^T32Color;


 
{RASkov} ©   (2008-11-11 20:52) [1]

> [0] Res   (11.11.08 19:57)
> bmp.Canvas.Pixels[x,y]:=RGB(Pimage.data.r,Pimage.data.g,Pimage.data.b);

Что такое Pimage.data ? ....и как по нему идет цикл? т.е. тут его не видно ...прохода
Всегда берется одно и тоже значение.... вот и "заливается" твой bmp одним пикселом из Pimage.data....


 
{RASkov} ©   (2008-11-11 20:53) [2]

> Что такое Pimage.data ?

Ай.... там дальше написано....
Но все равно смещения никакого в цикле не видно...


 
Res   (2008-11-11 22:01) [3]

А как сделать смешение? вот мне нужно, как раз их PImage сделать норм БМП картинку, только я незнаю как)


 
www   (2008-11-11 22:16) [4]

Pimage.data[x].r
?


 
Res   (2008-11-11 22:20) [5]

Не компилится: "Array type required", ""." expected but ";" found"


 
{RASkov} ©   (2008-11-11 23:00) [6]

> [3] Res   (11.11.08 22:01)
> А как сделать смешение?

В приведенном тобой описании TGFX - никак. Это что-то непонятная структура, хранящая не понятно какую информацию, но в ее data точно не массив, а ссылка на запись из четырех байт...
Так что - никак. Или ты что-то напутал....
Может всеж так должно быть:
TGFX=record
  Width,Height:Integer;
  data: P32ColorArray;
в свою очереть P32ColorArray наверняка тоже "не правильный" массив.... всеж тут должен быть двумерный имхо
Как говорится: "Что-то тут не так" :)


 
Res   (2008-11-11 23:01) [7]

спасибо, будем разбиратся


 
Sapersky   (2008-11-12 16:14) [8]

А как сделать смещение?

Var pc : P32Color;

pc := Image.Data;
for y:=0 to ly-1 do begin
 for x:=0 to lx-1 do begin
   bmp.Canvas.Pixels[x,y]:=RGB(pc.r,pc.g,pc.b);
   Inc(pc);
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.12.21;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.036 c
2-1224144320
lewka
2008-10-16 12:05
2008.12.21
Форма по верх всех окон


3-1211962881
Ламот
2008-05-28 12:21
2008.12.21
Как в firebird 1.5 проиндексировать поле существующей таблицы?


6-1196884543
Norm Iridium
2007-12-05 22:55
2008.12.21
Delphi как получить HTML-код страницы? А через прокси?


3-1212133591
MV
2008-05-30 11:46
2008.12.21
TcxDBLoockupComboBox


2-1226478512
Mery
2008-11-12 11:28
2008.12.21
окно сообщения при работе цикла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский