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

    版权所有,禁止转载。

  • 相关阅读:
    Kafka 生产者 自定义分区策略
    同步互斥
    poj 1562 Oil Deposits(dfs)
    poj 2386 Lake Counting(dfs)
    poj 1915 KnightMoves(bfs)
    poj 1664 放苹果(dfs)
    poj 1543 Perfect Cubes (暴搜)
    poj 1166 The Clocks (暴搜)
    poj 3126 Prime Path(bfs)
    处理机调度
  • 原文地址:https://www.cnblogs.com/weinyzhou/p/4983521.html
Copyright © 2011-2022 走看看