首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >裁剪一个Base64 64/位图,不会对其进行裁剪

裁剪一个Base64 64/位图,不会对其进行裁剪
EN

Stack Overflow用户
提问于 2018-12-08 23:56:53
回答 1查看 558关注 0票数 1

目前,我正在制作一个函数,它可以接收base64图像并将其裁剪到所需的矩形(X、Y、宽度、高度)。然而,下面的代码似乎不起作用,我也不知道为什么。它返回的图像不变,未裁剪。

有人能看到这个问题吗?)

代码语言:javascript
运行
复制
public static string CropImage(string base64, int x, int y, int width, int height)
        {
            byte[] bytes = Convert.FromBase64String(base64);
            using (var ms = new MemoryStream(bytes))
            {
                Bitmap bmp = new Bitmap(ms);
                Rectangle rect = new Rectangle(x, y, width, height);

                Bitmap croppedBitmap = new Bitmap(rect.Width, rect.Height, bmp.PixelFormat);

                using (Graphics gfx = Graphics.FromImage(croppedBitmap))
                {
                    gfx.DrawImage(bmp, 0, 0, rect, GraphicsUnit.Pixel);
                }

                using (MemoryStream ms2 = new MemoryStream())
                {
                    bmp.Save(ms2, ImageFormat.Jpeg);
                    byte[] byteImage = ms2.ToArray();
                    var croppedBase64 = Convert.ToBase64String(byteImage);
                    return croppedBase64;
                }
            }
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-09 00:11:55

裁剪图像在croppedBitmap中,bmp是原始图像。我认为您希望在第二个内存流中使用croppedBitmap

代码语言:javascript
运行
复制
using (MemoryStream ms2 = new MemoryStream())
    {
        croppedBitmap.Save(ms2, ImageFormat.Jpeg);
        byte[] byteImage = ms2.ToArray();
        var croppedBase64 = Convert.ToBase64String(byteImage);
        return croppedBase64;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53688181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档