skia-基本图形的绘制


skia的图形绘制API和我们平时使用的各种平台的Canvas API几乎没什么区别.

看名字一般也就能知道具体是什么绘制操作了.

例子

#include "demo.h"
#include "include/core/SkBitmap.h"
#include "include/core/SkImageInfo.h"
#include "include/core/SkFont.h"
#include "include/core/SkImage.h"
#include "utils/file_utils.h"


void drawDemo(){
    SkBitmap bitmap;
    bitmap.setInfo(SkImageInfo::MakeN32(640,640,kOpaque_SkAlphaType));
    bitmap.allocPixels();

    SkCanvas canvas(bitmap);
    canvas.clear(SK_ColorWHITE);

    SkPaint paint;
    paint.setAntiAlias(true);
    paint.setColor(SK_ColorBLUE);

    canvas.drawLine(SkPoint::Make(0,0),SkPoint::Make(640,640),paint);

    paint.setColor(SK_ColorBLACK);
    paint.setStrokeWidth(20);
    canvas.drawPoint(SkPoint::Make(320,320),paint);

    paint.setStrokeWidth(2);
    paint.setColor(SK_ColorRED);
    paint.setStyle(SkPaint::Style::kStroke_Style);
    canvas.drawCircle(320,320,32,paint);
    canvas.drawCircle(SkPoint::Make(320,320),64,paint);

    paint.setColor(SK_ColorRED);
    canvas.drawRect(SkRect::MakeXYWH(100,100,160,64),paint);
    canvas.drawRoundRect(SkRect::MakeXYWH(360,360,120,120),SkIntToScalar(10),SkIntToScalar(10),paint);

    paint.setStrokeWidth(1);
    SkFont font;
    font.setSize(SkIntToScalar(23));
    canvas.drawString("SkiaFly",200,200,font,paint);

    saveBitmapAsPng("draw_basic_shape.png",bitmap);
}

效果如下:

draw_basic_shape

一些小说明

  • SkScalar

    看一下定义:

    typedef float SkScalar;

    其实就是个float.

    我们平时使用的时候,可以直接使用float值,也可以使用SkIntToScalar(x)进行转换.

  • SkPoint

    可以使用静态构造方法构造:

    SkPoint::Make(320,320)
  • SkRect

    也是使用静态构造方法创建:

    SkRect::MakeXYWH(100,100,160,64)

    其他类型的构造方法其实也差不多,看一下源码和定义也就知道用途了.

源码地址

SkiaFly


文章作者: 姜康
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 姜康 !
评论
 本篇
skia-基本图形的绘制 skia-基本图形的绘制
skia的图形绘制API和我们平时使用的各种平台的Canvas API几乎没什么区别. 看名字一般也就能知道具体是什么绘制操作了. 例子#include "demo.h" #include "include/core/SkBitmap.h"
2021-03-21
下一篇 
skia中的SkBitmap skia中的SkBitmap
SkBitmap是一个二维的光栅化像素数组. SkImageInfoSkImageInfo包含以下信息: 整形的宽,高 这里的宽可以认为是图像的列数,即 column count 这里的高可以认为是图像的行数, 用于描述像素格式的SkC
2021-03-21
  目录