1

アプリでグラフを描画するカスタム NSView があります。画像を含むPDFを生成しています。iOS では、次のようなコードを使用してこれを行います。

UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, 0.0);
[self drawRect:self.frame];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

iOS では、ディスプレイは網膜であり、画像が非常に高解像度であることを意味しますが、現在 Mac アプリでこれを実行しようとしていますが、非網膜の Mac は非高解像度を生成するため、画像の品質は低くなります。画像のバージョン。

NSView を使用して画像を生成するときに、網膜のように動作するように強制したいと思います。そうすれば、画像を PDF に入れると、はるかに高い解像度になります。現在、それは非常にぼやけており、魅力的ではありません。

4

2 に答える 2

0

Retina ビットマップでさえ、十分に拡大するとぼやけて見栄えが悪くなります。ビューのコンテンツが で描画されると仮定すると、ビューをdrawRect:固定解像度で PDF にレンダリングするよりも、PDF グラフィック コンテキストに直接描画する方が適切です。これにより、スケーラブルな PDF が生成されます。drawRect:ビューと PDFの両方で使用できるように、描画コードをファクタリングする必要があります。

また、iOS のドキュメントには、決して自分自身を呼び出してはいけないと記載されていdrawRect:ます。renderInContext:ビューのレイヤーで呼び出すか、新しい を使用しdrawViewHierarchyInRect:afterScreenUpdates:ます。

于 2015-05-04T21:57:28.770 に答える