I've seen many sh***y things coming from MS through the years, but I you really saying that their stretch (down) algorithm is worst than "copy every Nth pixel"??? This is something I'll have to see before my eyes ;-)
BTW, there's a WinAPI function to set the stretch quality... I don't remember its name right now, unfortunately :-( -Flávio On 9/7/06, Albert Zeyer <[EMAIL PROTECTED]> wrote:
Hi Are you using Windows? I recognized that the StretchBlt in the Windows API sometimes results in crappy effects while scaling down a picture. On GTK, I don't have this effects. To avoid such effect, I coded a very simple own Stretch-Function: Excerpt from my little sample game Robot: procedure TMainForm.CopyRect(DstCanvas: TCanvas; const Dest: TRect; SrcCanvas: TCanvas; const Source: TRect); procedure OwnCopyRect(); var x,y: Integer; w,h: Integer; sw, sh: Integer; begin w := Dest.Right - Dest.Left; h := Dest.Bottom - Dest.Top; sw := Source.Right - Source.Left; sh := Source.Bottom - Source.Top; for x := 0 to w do for y := 0 to h do begin DstCanvas.Pixels[Dest.Left + x, Dest.Top + y] := SrcCanvas.Pixels[Source.Left + (x * sw) div w, Source.Top + (y * sh) div h]; end; end; begin {$IFDEF win32} // WIN API StretchBlt is shit ! OwnCopyRect(); {$ELSE} // on something else, we have already a good copyrect ... DstCanvas.CopyRect(Dest, SrcCanvas, Source); {$ENDIF win32} end; Regards, Albert Am Donnerstag, den 07.09.2006, 14:45 +0300 schrieb Ewald Horn: Hi, when I stretch a PNG file (256 colours) to fit a smaller window the new image quality is extremely poor. Am I doing something wrong here ? In Lazarus I use a TImage component and set the Stretch property to true. Maybe there is another way to make an image fit the constraints of the component ? If I resize the image with XnView and the load it it works, but that defeats the purpose of being able to browse images on the fly. Kind regards Ewald Horn _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
_________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives