Главная страница
    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.039 c
2-1226592987
aKor
2008-11-13 19:16
2008.12.21
DBGrid


2-1226277502
ЛамерЪХ
2008-11-10 03:38
2008.12.21
Поиск всех главных окон


2-1226757057
Ruzzz
2008-11-15 16:50
2008.12.21
способ получения в EAX, значение флага cf?


9-1176119436
ElectriC
2007-04-09 15:50
2008.12.21
CD3DFont текст


3-1211885281
Vlad Oshin
2008-05-27 14:48
2008.12.21
Транзакции осуществляются в соединении или как? ADO





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