Köszönöm a választ!
Sejthettem volna, hogy kevés infot adtam.
Ugyanugy jelenitek meg egy képet, ahogy irtad.
Ezzel semmi gond nincs:
bmp:=TBitmap.Create;
mstpic:=TMemorystream.Create;
mstpic.LoadFromFile(ifn);
bmp.LoadFromStream(mstpic);
imagebmp.picture.bitmap:=bmp;
A baj itt van:
var
pixbyte: Byte;
begin
bmp2:=TBitmap.Create;
mstpic2:=TMemorystream.Create;
mstpic2.LoadFromStream(mstpic);
mstpic.position:=bmpos;
mstpic2.position:=bmpos;
while mstpic.position<bmfsize do
begin
mstpic.read(pixbyte,1);
pixbyte:=255-pixbyte;
mstpic2.write(pixbyte,1);
end;
//mstpic2.SaveToFile('C:\tempimage.bmp');
//bmp2.LoadFromFile('C:\tempimage.bmp');
bmp2.LoadFromStream(mstpic2);
imagebmp.picture.bitmap:=bmp2;
end;
Itt bmfsize a fájlméret (stream mérete), bmpos a kép pixeladatok kezdöcime, aztán létrehozok egy inverz képet.
Az mstpic2 valószinüleg jó, hiszen ha kimentem fájlba és onnan visszatöltöm bmp2-be, akkor nincs gond.
Egy lényegi különbséget látok eddig, itt az mstpic2 streamet LoadFromStream-mel mstpic-böl, tehát másik streamböl, nem pedig fájlból másoltam.
Köszi, üdv.