我想裁剪图像的底部25%,但我得到'内存不足'异常。我从我的代码和研究中测试知道,由于我的坐标超出范围,这个例外纯粹是抛出了。克隆,然后使用System.Drawing.Rectangle裁剪图像返回'内存不足'异常
我有一个叫做bmp的图片,它的宽度是400px,高度是250px。我用下面的代码修剪它...
PixelFormat = bmp.PixelFormat;
Bitmap CroppedImage = bmp.Clone(new System.Drawing.Rectangle(0, 250, 400, 62), bmpFormat);
这给了我:'异常详细信息:System.OutOfMemoryException:内存不足。
但是,如果我写的代码...
PixelFormat = bmp.PixelFormat;
Bitmap CroppedImage = bmp.Clone(new System.Drawing.Rectangle(0, 0, 400, 62), bmpFormat);
我的形象是从左上角向下裁剪(即我得到的前25%),这对我来说是没有意义的,我这是肯定的我需要将高度设置为-62而不是62来完成此操作。
如果有人能指出我对这个问题的答案,那就太好了!
从您的问题中不清楚您在通过超出范围的坐标时实际预期会发生什么,或者为何相关。缺乏良好的[mcve]会加剧这种缺乏清晰度的情况。但是,这听起来有点像你在错误的印象中位图坐标系统将原点放在图像的左下角。事实并非如此,并不适用于.NET上下文中的标准位图。原点在左上方,Y坐标向下增加。如果这还不足以让你重新走上正轨,你将需要相当大的改善你的问题。 –