zoukankan      html  css  js  c++  java
  • cximage 裁剪图片并背景透明

    extern "C" _declspec(dllexport) bool __stdcall SaveImage2(const char* srcImage, const char* json, bool transparent)
    {
        CxImage image;
        if (!image.Load(srcImage, CXIMAGE_FORMAT_TIF))
            return false;
    
        neb::CJsonObject oJson(json);
    
        int count = oJson.GetArraySize();
        for (int i = 0; i < count; i++)
        {
            int left, top, width, height;
            string path;
            oJson[i]["Region"].Get("Left", left);
            oJson[i]["Region"].Get("Top", top);
            oJson[i]["Region"].Get("Width", width);
            oJson[i]["Region"].Get("Height", height);
            oJson[i].Get("Path", path);
    
            int imageWidth = image.GetWidth();
            if (width > imageWidth - left)
                width = imageWidth - left;
    
            int imageHeight = image.GetHeight();
            if (height > imageHeight - top)
                height = imageHeight - top;
    
            CxImage subImage(imageWidth, imageHeight);
            
            RECT r;
            r.left = left;
            r.right = left + width;
            r.top = top;
            r.bottom = top + height;
    
            if (!image.Crop(r, &subImage))
                return false;
    
            if (transparent)
            {
                if (subImage.GetTransIndex() != 24)
                {
                    subImage.IncreaseBpp(24);
                }
                subImage.SetTransIndex(0);
                int B = 255, G = 255, R = 255;
                RGBQUAD rgbTrans = { B, G, R, 0 };
                subImage.SetTransColor(rgbTrans);
            }
    
            if (!subImage.Save(path.c_str(), CXIMAGE_FORMAT_GIF))
                return false;
        }
    
        return true;
    }
    桂棹兮兰桨,击空明兮溯流光。
  • 相关阅读:
    linux安装日志切割程序
    Linux下安装JDK
    深入理解Java注解类型(@Annotation)
    23种设计模式--代理模式-Proxy
    23种设计模式--建造者模式-Builder Pattern
    23种设计模式--工厂模式-Factory Pattern
    23种设计模式
    Java集合框架学习笔记
    MySQL入门笔记(一)
    二进制运算基础
  • 原文地址:https://www.cnblogs.com/nanfei/p/14340681.html
Copyright © 2011-2022 走看看