Jak wyczyścić obraz TJPEGImage?Jak wyczyścić obraz jpeg?
Sztuczka JPG.Width := 0
nie zadziała. Nie chcę również tworzyć pustej bitmapy (0x0 pikseli) i przypisywać jej do jpeg.
Jak wyczyścić obraz TJPEGImage?Jak wyczyścić obraz jpeg?
Sztuczka JPG.Width := 0
nie zadziała. Nie chcę również tworzyć pustej bitmapy (0x0 pikseli) i przypisywać jej do jpeg.
Można użyć coś takiego (The umieszczoną klasa używany jest tutaj, aby uzyskać dostęp do chronionych metod):
type
TJPEGImage = class(jpeg.TJPEGImage);
implementation
procedure TForm1.Button1Click(Sender: TObject);
var
JPEGImage: TJPEGImage;
begin
JPEGImage := TJPEGImage.Create;
try
// this should recreate the internal bitmap
JPEGImage.NewBitmap;
// this should recreate the internal image stream
JPEGImage.NewImage;
// here the memory used by the image should be released
finally
JPEGImage.Free;
end;
end;
Jeśli nie chcesz korzystać z używaniem FreeAndNIL i zachować obraz pusty ...
Procedure EmptyJPG(jpg:TJpegImage);
var
j:TJpegImage;
begin
j := TJpegImage.Create;
try
jpg.Assign(j);
finally
j.Free;
end;
end;
@Altar: Myślę, że masz na myśli "w moim pytaniu/w pierwotnym pytaniu", a nie "w PO". OP (= oryginalny plakat) to ty. –
To nie jest rozwiązanie. Nie jest bardziej efektywny niż uwolnienie i odtworzenie oryginalnego obrazu JPEGImage (a tak naprawdę jest mniej, ponieważ stworzyłeś nowy obiekt bez żadnego powodu, poza tym, że go wyrzucisz). Chociaż pierwotne pytanie nie ma sensu, proponowane przez ciebie rozwiązanie ma jeszcze mniej sensu. (Nie ignorując, BTW, po prostu nie rozumiem.) –
@ KenWhite, zgadzam się, jedyny powód, dla którego bym mógł zobaczyć, może być podobny do: początek EmptyJPG (FMyMyReadOnlyPropertyJPEG); Showmessage ('set before:' + IntToStr (FMyMyReadOnlyPropertyJPEG.CompressionQuality)) koniec; – bummi
miejsce składnik Tshape na tle na komponent TImage
Image1 : Timage
.
.
Image1.Picture.Graphic.Assign(nil);
Jak to jest związane z moim pytaniem? – Ampere
Jeśli nie chcesz, aby zwolnić obiekt, ale nie chcesz, aby zajmował już pamięć, a potem co chcesz zrobić? –
@Rob. Zostanie ponownie wykorzystane później. Wiele razy. W każdym razie powód nie ma znaczenia. Po prostu ciekawy, czy obraz można wyczyścić BEZ zużywania dodatkowych zasobów (tworzenie nowych obiektów, jak sugeruje bummi). – Ampere
Ja też nie widzę, co trzymasz, jeśli chcesz usunąć wszystko. Co pozostało, gdy obraz zniknął? Jaki jest stan? –