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;
    }
    桂棹兮兰桨,击空明兮溯流光。
  • 相关阅读:
    LeetCode100——same tree
    Stl——Vector.erase()用法
    xor异或逻辑运算
    爬楼梯问题——迭代or递归
    简单博弈论取石子
    纪念我的leetcode开门之旅
    JiuDuOj——1049
    [Codeforces 872]比赛记录
    [BZOJ 4563]放棋子
    10.14
  • 原文地址:https://www.cnblogs.com/nanfei/p/14340681.html
Copyright © 2011-2022 走看看