Ich benutze calyer renderInContext, um ein Capture zu ImageView zu erstellen, aber ich finde, es verliert an Qualität. Wo lag ich falsch?iOS: calyer renderInContext verwenden, um Bildqualität zu erfassen Qualität zu verlieren
edit:
das obige Bild von einem Imageview mit contentMode von aspectFill
und ClipToBounds angezeigt wird.
Das Bild unten ist Prozess durch den Code, den ich gebe, eigentlich möchte ich nur das Bild auf die gleiche Größe wie die ImageView mit ContentMode von aspectFill
Clip, so brauche ich nicht clipToBounds zu verursachen offscreen-rendering
.
Wo ist der Qualitätsverlust? Die Qualität des unteren Bildes ist tatsächlich besser (das Herunterskalieren ist viel glatter). – deadbeef
Versuchen Sie, die Interpolationsqualität Ihres Kontexts zu verringern, wenn Sie dasselbe "scharfe" Ergebnis des oberen Bildes erzielen möchten. – deadbeef
Auch wenn Sie die Größe eines Bildes ändern, sollten Sie direkt mit dem Bild selbst arbeiten (mit seiner 'draw'-Methode), anstatt die Ebene des imageView zu zeichnen. – deadbeef