Eindeutig die Graphics32
Alle anderen Verfahren bieten
imho nur Stretching nach dem "nearest Neighbor"-Verfahren - also stupide Pixelvervielfältigung. WIrd blockig ohne Ende. Evtl. auch noch lineare Intpl., die aber wie gesagt auch nicht ganz das gelbe vom Ei ist.
Vorgehen bei der G32:
Nach installation "GR32" in die Uses-Klausel aufnehmen, und alles was ein TBitmap war zum TBitmap32 machen.
Delphi-Quellcode:
var
bmp1, bmp2: TBitmap32;
begin
bmp1 := TBitmap32.Create;
bmp2 := TBitmap32.Create;
bmp1.LoadFromFile('c:\ich bin ein Pfad\ich ein Bild.bmp');
bmp2.Width := bmp1.Width div 2;
bmp2.Height := bmp1.Height div 2;
bmp1.StretchFilter := sfLanczos; // Muss also beim Source-Bitmap gewählt werden!
bmp1.DrawTo(bmp2, bmp2.BoundsRect, bmp1.BoundsRect);
end;
Damit wäre das Bild nun in seiner Größe halbiert, und bleibt dabei schön
.
Als Stretchfilter eingebaut sind:
Nearest Neighbor
lineare Intpl.
Spline-Intpl.
Mitchell
Lanczos (der
imho die schönsten Ergebnisse bringt, aber auch der langsamste ist.)
Weitere Vorteile der G32:
- TBitmap32.Pixels[x,y] ist quasi so schnell wie die Scanline-Variante
- Antialiastes Zeichnen von Linien etc. (mit Koordinaten in Integer, Singe, Double, oder einem eigenen Festkommatyp)
- Pixels[x,y] gibts auch in diversen antialiasten Varianten
- Volle Ünterstützung eines 8-Bit Alphakanals
- insgesammt sehr schnell und flexibel
- brauchbar dokumentiert
- Es kommen Visuelle Kompos mit: TImage32, TBitmap32List, TPaintBox32, TRangeBar, TGaugeBar, TImgView32 (quasi ein Image mit Scrollbox - SEHR praktisch
)
Ich empfehle die G32 immer sehr gerne, da sie den komplettesten Ersatz für die doch etwas langsamen Delphi-Kompos darstellt, und in der Handhabung aber kaum anders sind!
Wenn du ein Grafik-Prog schreibst, kannst du dir insgesamt damit das Leben leichter machen.
Nächtsle,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel