2017-03-23 4 views
-1

Warum führt das Zeichnen einer Form zu einer Bitmap dazu, dass die Form verschwommen ist, anstatt die Form direkt auf die Leinwand zu zeichnen?Warum reduziert das Zeichnen einer Form zu einer Bitmap die Qualität?

+1

es nicht: Zeichnung zeichnet - in beiden Fällen Sie die 'Canvas' verwenden – pskink

+0

Sind Sie sicher? Ich zeichne gerade eine Reihe von Formen zu einer Bitmap und zeichne diese Bitmap dann auf eine Leinwand und die Formen sind nicht annähernd so scharf, als ob ich die Formen direkt auf die Leinwand ohne die Bitmap zeichnen würde. Post – Shpanders

+0

Code dann – pskink

Antwort

1

Bitmap ist eine rasterized computer image, bestehend aus Punkten (Pixel).

Die Canvas-Klasse enthält die Aufrufe "draw".

Eine Form ist eine abstrakte Definition der Form (Vektor-like).

die Form direkt auf die Leinwand Zeichnung

Das ist nicht genau, vielleicht meinen Sie direkt auf dem Bildschirm des Geräts, die zu Bitmap ist.

Um Canvas zum Zeichnen zu verwenden, benötigen Sie die Zeichenfläche zum Hosten der Aufrufe, eine Bitmap als Ziel und einige Zeichnungsgrundelemente (Form ist eins) und Paint (enthält Informationen zum Zeichnen der Zeichnungsgrundelemente).

Sobald Sie irgendeine Form in die Ziel-Bitmap zeichnen, wird es auf die Pixel des Zielbitmap aliased werden. Ie. Ein Kreis wird zu einer Annäherung, die durch rechteckige Pixel der Ziel-Bitmap erzeugt wird. In Ihrem speziellen Fall sehen Sie wahrscheinlich, dass Ihr Bitmap eine niedrigere Auflösung als der Bildschirm hat. Wenn Sie dieses Bitmap mit niedriger Auflösung auf die Zielbildschirm-Bitmap zeichnen, wird es durch einen Filter hochskaliert, der das hochskalierte Bild a macht Bit verschwommen, um große rechteckige Pixelierung zu vermeiden (oder es kann auch anders sein, Downscaling Hi-Res-Bitmap, die zu scharfe/dünne Konturen enthält, die Aliasing zweiten Mal Alias ​​wird, wenn sie herunterskaliert, und sogar mit Anti-Alias-Filter wird es unscharf ein bisschen). Oder vielleicht verwenden Sie etwas Farbe mit Einstellungen, die Unschärfe verursachen (unwahrscheinlich, ich kann nicht daran denken, aus Versehen eine zu erstellen, die Sie kennen würden).

Wenn Sie für beide Ziele Bitmap mit identischer Dichte (Auflösung eines einzelnen Pixels) und derselben Malmethode verwenden, ist das Ergebnis dasselbe und auch das Zeichnen der Form von Bitmap zu Bitmap, solange Sie verwenden Ganze Pixelkoordinaten/-größe und keine Filterung, das Ergebnis ist wieder dasselbe wie das direkte Zeichnen auf die Bildschirm-Bitmap.

Beginnen Sie also zuerst mit der Überprüfung der Bitmap im Vergleich zur Bildschirm-Bitmap und überprüfen Sie dann die Maleinstellungen und zusätzliche Zeichenflächenargumente, um die Bitmap zu zeichnen, unabhängig davon, ob Sie sie mit einer Art Filterung hoch- oder herunterskalieren.

+0

Danke, ich denke, die Ursache wahrscheinlich ist, dass die Bitmap aufgrund es 1920 verkleinert wird x 1920 sein und mein Ziel Bildschirmgröße 1080 ist x 1920 – Shpanders

+0

@Shpanders erster identische Größen versuchen, um zu sehen, ob es nicht beteiligt ist etwas zusätzliche Filterung in der Paint-Bitmap-Draw-Methode (wie beim Zeichnen der gleichen Größe im Maßstab 1.0, aber zum Beispiel an der Position 0.5.0.5, würde das bei einigen Zeichnungs-Engines/Einstellungen eine Filterung verursachen, um das Original um ein halbes Pixel zu verschieben). ... Wenn die Zeichnung im Maßstab 1: 1 scharf ist, sollten Sie nur den ausgeschnittenen Bereich (ohne Berücksichtigung des Bereichs außerhalb der Bildschirmgröße) 1080x1920 des zu zeichnenden 1920x1920 in Betracht ziehen, aber vielleicht können Sie auch nur mit der Bildschirmgröße beginnen . – Ped7g

Verwandte Themen