0

私は iOS で cgpdf と catiledlayer を使用して pdf レンダラーに取り組んでいますが、特定のフォントを除いてすべてうまくいきます。私が検討している解決策は、エッジ近くの灰色のピクセルを黒にすることです。これは CGContextSet"Whatever"() メソッドで可能だと思います。ここに説明する写真があります。


現在レンダリング中... 現在


Adobe Reader アプリが次のようにレンダリングされています...

アドビ

とてもシャープに見えるので、それが使用する方法 (または同様のものを取得する方法) を知っていれば、私は有頂天になるでしょう。


しかし、回避策として私がやろうとしているのは、すべての灰色のピクセルを黒くすることです。何かのようなもの... 大丈夫


繰り返しますが、私は cgcontext セッター メソッドを使用しており、変更に気づいていますが、すべてのドキュメントでそれぞれの機能が明確になっているわけではないため、解決策についての説明や洞察をいただければ幸いです。前もって感謝します。

4

1 に答える 1

1

Adobe のレンダラーがグリフの下部をピクセル全体に揃えているように見えますが、あなたのものはそうではありません。

Quartz-Dev メーリング リストのこれら 2 つのメッセージ ( onetwo ) は、次の関数を使用して、サブピクセルの配置とサブピクセルの量子化の設定を変更してみる必要があることを示唆しています。

CGContextSetAllowsFontSubpixelPositioning
CGContextSetShouldSubpixelPositionFonts
CGContextSetAllowsFontSubpixelQuantization
CGContextSetShouldSubpixelQuantizeFonts

サブピクセル配置を完全にオフにするか、サブピクセル配置とサブピクセル量子化の両方をオンにします。実験する必要があります。

あなたが示したように、Quartz のレンダリングの後処理は、非常によく見える可能性は低いです。

于 2012-06-09T05:32:38.087 に答える