zoukankan      html  css  js  c++  java
  • skia windows 测试代码和注意项

    今天新建了一个测试项目,
    #include "SkBitmap.h"
    
    #include "SkDevice.h"
    
    #include "SkPaint.h"
    
     
    
    #include "SkRect.h"
    
    #include "SkImageEncoder.h"
    
    int main (int argc, char * const argv[]) {
        // Declare a raster bitmap, which has an integer width and height,
    
            // and a format (config), and a pointer to the actual pixels.
    
            // Bitmaps can be drawn into a SkCanvas, but they are also used to
    
     
    
            // specify the target of a SkCanvas' drawing operations.
    
            SkBitmap bitmap;
    
            bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200);
    
            bitmap.allocPixels();
    
     
    
            // A Canvas encapsulates all of the state about drawing into a
    
            // device (bitmap).  This includes a reference to the device itself,
    
            // and a stack of matrix/clip values. For any given draw call (e.g.
    
            // drawRect), the geometry of the object being drawn is transformed
    
            // by the concatenation of all the matrices in the stack. The
    
            // transformed geometry is clipped by the intersection of all of the
    
     
    
            // clips in the stack.
    
            SkCanvas canvas(new SkDevice(bitmap));
    
     
    
            // SkPaint class holds the style and color information about how to
    
            // draw geometries, text and bitmaps.
    
            SkPaint paint;
    
     
    
            // SkIRect holds four 32 bit integer coordinates for a rectangle.
    
     
    
            SkRect r;
    
     
    
            paint.setARGB(255, 255, 0, 0);
    
            r.set(25, 25, 145, 145);
    
            canvas.drawRect(r, paint);
    
     
    
            paint.setARGB(255, 0, 255, 0);
    
            r.offset(20, 20);
    
            canvas.drawRect(r, paint);
    
     
    
            paint.setARGB(255, 0, 0, 255);
    
            r.offset(20, 20);
    
            canvas.drawRect(r, paint);
    
     
    
            // SkImageEncoder is the base class for encoding compressed images
    
            // from a specific SkBitmap.
    
            SkImageEncoder::EncodeFile("snapshot.png", bitmap,
    
                   SkImageEncoder::kPNG_Type,
    
                   100);
    
            return 0;
    }
    编译是发现找不到头文件,添加以下几项即可../../../include;../../../include/core;../../../include/config;../../../include/Images。
    添加之后编译可以通过,但是链接错误,需做项目关联,但是我把所有的项目关联上都还是错误,不知道是我的VS环境问题还是大家都有同样的问题,于是,手动包含以下库
    core.lib
    images.lib
    opts.lib
    opts_ssse3.lib
    utils.lib
    ports.lib
    OpenGL32.lib
    usp10.lib
    windowscodecs.lib
    
    
    
    

    编译通过了,运行,发现生成了一个Png图

    发布于:http://blog.csdn.net/weinyzhou/article/details/7346946

    版权所有,禁止转载。

  • 相关阅读:
    【MyBatis】Inappropriate OGNL expression
    【java】前补零
    【js】前补零
    【Java】导出excel.xlsx
    【插件】fileinput
    【前端】WebSocket is already in CLOSING or CLOSED state?
    【HTML】input标签添加提示内容
    学习问题记录 -- 对象和引用
    八数码难题
    Java 逻辑运算符 & 与 &&的区别
  • 原文地址:https://www.cnblogs.com/weinyzhou/p/2592494.html
Copyright © 2011-2022 走看看