Главная страница
    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.05 c
2-1226327058
Andrey_ka
2008-11-10 17:24
2008.12.21
работа с памятью


15-1224652490
Риппер
2008-10-22 09:14
2008.12.21
The instruction at "0x77f5d61b" referenced memory at "0x00000010"


15-1224581575
Студенты
2008-10-21 13:32
2008.12.21
Dbgrid, как повернуть 90 ?


4-1202422124
Master_Of_Puppets
2008-02-08 01:08
2008.12.21
TreeView в чужом приложении


2-1226492779
Andrey_ka
2008-11-12 15:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский