Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Rysowanie po TImage gdy jest to JPEG

43 views
Skip to first unread message

max

unread,
Nov 5, 2009, 4:00:32 AM11/5/09
to
uses jpeg; // to jest konieczne aby można było wczytać JPEG
// nie mam niestety źródeł :( (są na CD dołączonym do delphi)

// 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

max

unread,
Nov 5, 2009, 4:06:05 AM11/5/09
to

> Czy też zrobić tak JPG -> BMP -> TImage ?


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;

Bogdan Polak (BSC)

unread,
Nov 5, 2009, 4:28:47 AM11/5/09
to
max pisze:
> Da siďż˝ coďż˝ narysowaďż˝ na TImage gdy wczytamy JPG ?
> Czy teďż˝ zrobiďż˝ tak JPG -> BMP -> TImage ?

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

Arivald

unread,
Nov 5, 2009, 4:27:57 AM11/5/09
to
max pisze:

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

Zeman

unread,
Nov 12, 2009, 2:15:58 PM11/12/09
to
>
> "max" <m...@max.pl> wrote in message
> news:hcu47d$igp$1...@portraits.wsisiz.edu.pl...
> uses jpeg; // to jest konieczne aby mo�na by�o wczyta� JPEG
> // nie mam niestety �r�de� :( (s� na CD do��czonym do delphi)

>
> // 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 ?
>
>
TJpegImage ma Bitmap tyle ze w sekcji protected, a wiec

TJ = class(TJpegImage)
public
property Bitmap;
end;
...

j : TJ;
// stworz j i wczytaj plik
j.Bitmap.Canvas.ellipse(1,1,100,100);
...


Pozwiodronka,
Zeman.


0 new messages