Czytam, czytam, czytam i już mnie wszystko boli.
Czy można(Delphi 6) narysować jotpega na canvasie?
Bo wiem już, że z bitmapą nie ma problemów. Ale jak narysować jpg?
Czytam, czytam, czytam i już mnie wszystko boli.
Czy można(Delphi 6) narysować jotpega na canvasie?
Bo wiem już, że z bitmapą nie ma problemów. Ale jak narysować jpg?
zapisujesz sobie jpg jako bitmape i rysujesz bitmapą :P
zapisujesz sobie jpg jako bitmape i rysujesz bitmapą :P
Tylko, że to się mija z celem :/
A to może ktoś jeszcze by powiedział, jak zmienić rozmiary bitmapy?
uses
JPEG;
var
JPG: TJPEGImage;
begin
JPG := TJPEGImage.Create;
try
JPG.LoadFromFile('C:\Plik.jpg');
Canvas.Draw(0, 0, JPG);
finally
JPG.Free;
end;
end;
A co do bitmapy: obiekt klasy TBitmap ma właściwości Width i Height oznaczające (odpowiednio) szerokość i wysokość bitmapy. A jeśli chodzi o jej przeskalowanie, to metoda StretchDraw() klasy TCanvas.
uses
JPEG;
var
JPG: TJPEGImage;
begin
JPG := TJPEGImage.Create;
try
JPG.LoadFromFile('C:\Plik.jpg');
Canvas.Draw(0, 0, JPG);
finally
JPG.Free;
end;
end;
Też tak myślałem, jednak to nie działa. Po prostu nic się nie dzieje.
Też tak myślałem, jednak to nie działa. Po prostu nic się nie dzieje.
A gdzie to wpisujesz? Może rysujesz, a potem jest odświeżenie okna i rysunek idzie się kąpać?
Nic dziwnego, canvas czego?
Majac TJpegImage mozesz se go przerobic na bitmape (wszystko w pamieci) przez assign TBitmap (parametr to twoj jpeg), porysowac po canvasie TBitmap i na koniec przerobic na jpega JpegImage.Assign(Bitmap).
//Znowu moj blad, myslalem, ze chodzi mu o rysowanie po jpegu, a nie jpega na czyms ;P
Nic dziwnego, canvas czego?
To był tylko przykład. Taki kod może być fragmentem jakiejś procedury. A jeśli będzie to metoda formy, to nie Canvas czego, tylko Canvas formy :) A zawsze można wpisać Form1.Canvas.CośTam albo np. Image1.Canvas.CośTam. Jak przepisaliście to dokładnie, to nic dziwnego, że nie chodzi. Poza tym, ja to piszę z głowy (nie mam Delphi uruchomionego, za długo się włącza żeby na chwilę i co chwilę włączać :) )
Też tak myślałem, jednak to nie działa. Po prostu nic się nie dzieje.
A gdzie to wpisujesz? Może rysujesz, a potem jest odświeżenie okna i rysunek idzie się kąpać?
To jest w onShow.
A próbowałem po tym dać jeszcze REPAINT i też żadnych rezultatów.
Też tak myślałem, jednak to nie działa. Po prostu nic się nie dzieje.
A gdzie to wpisujesz? Może rysujesz, a potem jest odświeżenie okna i rysunek idzie się kąpać?
To jest w onShow.
A próbowałem po tym dać jeszcze REPAINT i też żadnych rezultatów.
Jak dałeś Repaint to na pewno nie będzie rezultatów, bo rysujesz a potem odświeżasz okno.
Juhas, nie jestem pewien, ale chyba kiedys mialem problemy z rysowaniem jpg przez Delphi - ladowac owszem, ladowalo, ale nie chcialo pisac go po canvasie. Moze poszukaj bibliotek do jpg?
U mnie też byl podobny problem, wczytało plik *.jpg do Canvasa, ale nie bardzo chciało po nim rysować. Spróbuj przekonwerterować jpg na bitmape a potem to wczytaj do canvasa, jak skonczysz edytowac rysunek, to zamień bitmape na jpeg i zapisz na dysk. :)