Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
8-1188473003
T54
2007-08-30 15:23
2008.12.21
TVideoGraber


2-1226567217
Tugodum
2008-11-13 12:06
2008.12.21
невидимая форма


2-1226565725
DFT
2008-11-13 11:42
2008.12.21
RGB в GrayScale


15-1224714417
Access
2008-10-23 02:26
2008.12.21
Как получить все перестановки в слове перестановка?


2-1226751519
TRSteep
2008-11-15 15:18
2008.12.21
DirectX





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский