Entwickler-Ecke
Multimedia / Grafik - Bild verkleinern, aber nichts abschneiden
Anonymous - Do 08.05.03 15:09
Titel: Bild verkleinern, aber nichts abschneiden
Hi,
wie kann ich ein Bild in der Ansicht verkleinern ohne was abzuschneiden.....?
maximus - Do 08.05.03 15:16
was verstehst du unter einem bild? TImage, TBitmap, bmp, png, jpg, gif, DIB...?
Terra23 - Do 08.05.03 15:48
Wenn du die Image-Komponente von Delphi benutzt, die hat die Eigenschaft Stretch. Wenn du die auf True setzt, wird das geladene Bild in das Image "gezerrt", also bleibt es komplett erhalten, sieht aber u.U. nicht mehr gut aus. -> So wie die Einstellung "gestreckt" in der Windows-Anzeige. :-)
Aton - Di 23.03.04 17:58
Terra23 hat folgendes geschrieben: |
wird das geladene Bild in das Image "gezerrt", also bleibt es komplett erhalten, sieht aber u.U. nicht mehr gut aus. |
Kann man auch irgendwie mit Antialias, also smooth stretchen?
Danke, Jens.
Beliar - Do 25.03.04 00:28
Kann man - mit Photoshop :lol:
Sonst wüsst ich auch nicht wie
Christian S. - Do 25.03.04 00:42
Schau mal bei g32.org (ohne www). Dort gibt es eine Library (Graphics32), welche verschiedene Verfahren zum resizen von Bildern zur Verfügung stellt. Suche in der beiligenden Hilfedatei nach StretchTransform. Ich setze die Bibl. beispielsweise in meinem PL's Pixit (Freeware-Sparte) ein.
NetFalcon - Do 25.03.04 01:11
ich schau mal nach dem quelltext
hab ich mal programmiert
ist aber auhc schon so spät...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78:
| function ResizeBmp(bitmp: TBitmap; wid, hei: Integer): Boolean; var TmpBmp: TBitmap; ARect: TRect; begin Result := False; try TmpBmp := TBitmap.Create; try TmpBmp.Width := wid; TmpBmp.Height := hei; ARect := Rect(0,0, wid, hei); TmpBmp.Canvas.StretchDraw(ARect, Bitmp); bitmp.Assign(TmpBmp); finally TmpBmp.Free; end; Result := True; except Result := False; end; end;
function Bmp2Jpg(const ABmp: TBitmap; AQuality: Integer): TJPEGImage; type TJPEGQualityRange = 1..100; var bmp : TBitmap; Jpg : TJpegImage; begin bmp := TBitmap.Create; jpg := TJpegImage.Create; try Jpg.CompressionQuality := AQuality; Jpg.Assign(Abmp); Jpg.SaveToFile ( ChangeFileExt('C:/Screen', '.jpg' )); finally jpg.Free; bmp.Free; end; end;
procedure TForm1.Button1Click(Sender: TObject); var Bitmap: TBitmap; DeskWh: HWND; DeskDC: HDC; DeskRc: TRect; begin
DeskWh := GetDesktopWindow; DeskDC := GetDC(DeskWh); GetWindowRect(DeskWh, DeskRc); Bitmap := TBitmap.Create; try Bitmap.Width := DeskRc.Right - DeskRc.Left; Bitmap.Height := DeskRc.Bottom - DeskRc.Top; BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, DeskDC, 0, 0, SRCCOPY); ResizeBmp(Bitmap , 426 , 341);
Bmp2Jpg(Bitmap,44);
finally ReleaseDC(DeskWh, DeskDC); bitmap.Free; end;
end; |
Hier bitte der Quellcode eines Programmes, dass den Bildschirm foto macht, verkleinert und sogar die qualität ändert und dann in ein jpg umwandelt
Mehr kann man garnicht wollen
Gähn gute nacht
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
Christian S. - Do 25.03.04 01:33
StretchDraw liefert oft recht unschöne Ergebnisse. Daher gibt es ja auch Algorithmen, um die Größe von Bildern zu ändern. :-)
Aton - Do 25.03.04 09:20
Danke,
diese g32.org - Packages sind wirklich gut. 8) Respekt vor Leuten, die sowas entwickeln und dann auch noch als Freeware zur Verfügung stellen. :D
Gruß Jens.
Bumpy Johnson - Di 29.03.05 14:59
hi leute,
ich hab mir auch mal das Graphics32 Paket runtergeladen. Ich finde es auch echt klasse, bloß hab ich noch mal ein Frage. Ich würde gerne ein Bild(Dateigröße) verkleinern. Das ganze mache ich gerade mit der ganz normalen Funktion von Tbitmap (Compress und CompressQuality) Leider ist die Qualität nicht das was ich will...
Geht das auch mit Graphics32?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!