• 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

    版权所有,禁止转载。

  • 相关阅读:
    apache安装错误error: APR not found解决办法
    (总结)Nginx配置文件nginx.conf中文详解
    多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
    x-forwarded-for的深度挖掘
    hashcode与字符串
    千万不要误用 java 中的 HashCode 方法
    浅谈Java中的hashcode方法
    MySQL中concat函数
    mysql prepare语句使用
    修改表结构
  • 原文地址:https://www.cnblogs.com/weinyzhou/p/4983521.html
Copyright © 2020-2023  润新知