2
私は現在、スライスされた画像を描画するには、次のコードを使用しています:カイロでスライスされたイメージを描画するには?
static void DrawImage(cairo_t *ctx,int x,int y,int w,int h,cairo_surface_t *img){
cairo_set_source_surface(ctx, img, 0, 0);
cairo_rectangle(ctx, x, y, w, h);
cairo_clip(ctx);
cairo_paint(ctx);
cairo_reset_clip(ctx);
}
void DrawThreeSliceImage(cairo_t* ctx,Point p,int width,cairo_surface_t *a,cairo_surface_t *b,cairo_surface_t *c){
DrawImage(ctx, p.x, p.y, cairo_image_surface_get_width(a), cairo_image_surface_get_height(a),a);
DrawImage(ctx, p.x+cairo_image_surface_get_width(a), p.y, width-(cairo_image_surface_get_width(a)+cairo_image_surface_get_width(c)), cairo_image_surface_get_height(b),b);
DrawImage(ctx, p.x+(width-cairo_image_surface_get_width(c)), p.y, cairo_image_surface_get_width(c), cairo_image_surface_get_height(c),c);
}
しかし、出力がありません。私はxlibとpngの両方のサーフェスにレンダリングしようとしましたが、どちらも機能していないようです。何も描画されていません。また、私は入力面をpngファイルに書いており、動作しているように見えます。
ありがとうございました。同様の問題を持つことも人のために