AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Subpixel/Alignmentfehler von StretchBlt?
Thema durchsuchen
Ansicht
Themen-Optionen

Subpixel/Alignmentfehler von StretchBlt?

Ein Thema von hboy · begonnen am 20. Jan 2011 · letzter Beitrag vom 20. Jan 2011
Antwort Antwort
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#1

Subpixel/Alignmentfehler von StretchBlt?

  Alt 20. Jan 2011, 00:52
Seit ich halftoning bei StretchBlt für mich entdeckt habe, beschäftigt mich das im angehängten Bild gezeigte verhalten. Beim Hochskalieren (hier 600%) neigt die Funktion dazu, sich leicht zu vertun, was dazu führt, dass die Ausgabe nicht am grün dargestellten Zielrechteck (darübergezeichnet zum debugging) endet sondern etwas davor aussetzt. Dennoch werden dann schwarze Linien oder Rahmen gezeichnet. Dies tritt bei allen Bildgrößen mehr oder weniger unberechenbar auf, bei manchen Zoomstufen funktioniert die Routine hingegen wieder akzeptabel.

Bei sehr großen Zoomstufen scheint StretchBlt der Meinung zu sein, dass die Pixelung wohl so gewollt sei und die Interpolation wird abgeschaltet. Das führt dazu, dass - je nach Detailgrad des Bildes - mit ODER ohne Glättung gezeichnet wird.

Delphi-Quellcode:
        CreateHalftonePalette(buffer.Canvas.Handle);
        SetStretchBltMode(buffer.canvas.Handle, STRETCH_HALFTONE);
        SetBrushOrgEx(buffer.Canvas.Handle,0,0,nil); // avoid brush misalignment
mit GetStretchBltMode(dest.Canvas.Handle) = STRETCH_HALFTONE überprüfe ich vor dem Zeichnen nochmals, ob alles geklappt hat, aber der Zeichenmodus ist mehr oder weniger willkürlich nicht korrekt.

Habe ich etwas übersehen? Danke schonmal für die Hilfe!



ps. http://connect.microsoft.com/VisualS...ails-smoothing Mist!
pps. http://support.microsoft.com/kb/269585/en-us?fr=1 na danke. Okay, als nächstes werde ich wohl versuchen, das Bild in Kacheln zu segmentieren und stückweise zu rendern. Qualität aus dem Hause Microsoft sei dank.
Miniaturansicht angehängter Grafiken
stretchblt_subpixel.png  
Power is nothing without TControl

Geändert von hboy (20. Jan 2011 um 01:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#2

AW: Subpixel/Alignmentfehler von StretchBlt?

  Alt 20. Jan 2011, 01:30
Ein Ähnliches problem habe ich bei der GDI+. Wenn ich per GDPGraphics zeichne und interpolationmode gesetzt habe, kann es dazu kommen, das es am unteren rand/rechten rand 1-2 leere pixelreien gibt. Das passiert bei mir, wenn ich ein 4:3 BIld auf 16:10 Stretche. Von 16:9 -> 16:10 scheint alles in ordnung. Vielleicht vertuts sich beim seitenverhältniss?

Leider kann ich dazu nichts sagen. Für meinen Screensaver habe ich beschlossen ne Offsetfunktion einzubauen, die es dem User erlauben wird da sganze anzupassen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz