// wczytujemy plik JPEG
procedure TForm10.Button1Click(Sender: TObject);
begin
image1.Picture.LoadFromFile( '0001.jpg' );
end;
// tak nie działa
procedure TForm10.Button2Click(Sender: TObject);
begin
// tak nie działa , obraz znika wogóle z formy
image1.Picture.Bitmap.Canvas.LineTo(100,100);
// tak jest wyjątek że tylko na plikach BMP można wykonać czynność
image1.Canvas.LineTo(100,100);
end;
Da się coś narysować na TImage gdy wczytamy JPG ?
Czy też zrobić tak JPG -> BMP -> TImage ?
M
Przykład JPG -> BMP -> TImage
procedure TForm10.Button1Click(Sender: TObject);
var
b: Tbitmap;
j: TJPEGImage;
begin
b:= Tbitmap.Create;
j:= TJPEGImage.Create;
j.LoadFromFile('0001.jpg');
b.Assign(j);
image1.Picture.Assign(b);
b.free;
j.Free;
end;
Nie da si� rysowa� wewn�trz TJPEGImage. Mo�na co najwy�ej pomaza� po
ekranie, ale to nie zostanie utrwalone w TJPEGImage. Dlatego konieczna
jest konwersja na bitmapďż˝.
--
Bogdan Polak - trener i starszy konsultant
(programista i pasjonat Delphi/C++Builder)
Dziaďż˝ techniczny BSC Polska
#
BSC Polska sp. z o.o. ul.Schroegera 32, Warszawa
Przedstawiciel Embarcadero Technologies w Polsce
Embarcadero Sales and Training Partner
Oczywiście trzeba uzywać bitmapower wersji JPG'a.
aby zdekompresować
(Image1.Picture.Graphics as TJPEGImage).DIBNeeded;
aby skompresować ponownie
(Image1.Picture.Graphics as TJPEGImage).JPEGNeeded;
Opcje kompresji tez można ustalić, pocztyraj w helpie.
--
Arivald
TJ = class(TJpegImage)
public
property Bitmap;
end;
...
j : TJ;
// stworz j i wczytaj plik
j.Bitmap.Canvas.ellipse(1,1,100,100);
...
Pozwiodronka,
Zeman.