画像表面にcairoを介していくつかのランダムな長方形を描画し、スケーリングと翻訳を行い、結果を次を使用して表示しています
unsigned char* data = cairo_image_surface_get_data(surface);
しかし、長方形がぼやけているようです:( スクリーンショットを投稿できませんでした)
コーナーは (おそらく) 整数座標にマップされていません。含まれているテクスチャdata
は と同じサイズと形式で、surface
既にアンチエイリアシングの設定で遊んでいます (テキスト表示はさらにぼやけています!!)。結果の形状を整数座標にマッピングし、品質を向上させるにはどうすればよいですか (スーパーサンプリングを使用せず、スケーリング変換をドロップせずに)?
編集: 以下のコードを使用しました (3 行目あり、なし) が機能しませんでした!:
cairo_save(cr);
cairo_identity_matrix(cr);
cairo_translate(cr, 0.5, 0.5);
cairo_scale(cr, size.width, size.height);
cairo_set_antialias(cr, CAIRO_ANTIALIAS_GOOD);
(make the drawing!!)
cairo_restore(cr);
Edit2:スナップの楽しみを使用しました。(すべての変換コードの後)、それも機能しませんでした:
double szero1 = zero,szero2 = zero, sone1 = one, sone2 = one;
snapToPixel(cr, &szero1, &szero2);
snapToPixel(cr, &sone1, &sone2);
cairo_rectangle (cr, szero1, szero2, sone1, sone2);