我在medialibrary(5000 * 5000像素)中有大图像。我只需要拍摄部分照片。假设它从x = 200 y = 200开始,其1000像素宽度和高度。我怎样才能做到这一点 ?我没有任何好的解决方案。
我发现只有解决方案:
使用 photochoosertask .... 然后
var b = new WriteableBitmap(5000, 5000);
b.LoadJpeg(e.ChosenPhoto);
WriteableBitmap wb = b.Crop(200, 200, 1000, 1000);
image1.Source = wb
但结果质量很差,我也有一些ram问题......
答案 0 :(得分:0)
这里的问题是您正在创建大小为1000x1000的WriteableBitmap。当您调用LoadJpeg时,它会将您的图像加载到该分辨率,从而导致质量问题。当你裁剪时,情况变得更糟。
当您尝试使用大图片时,内存问题是正常的。为避免这种情况,您最好使用SetSource方法,该方法会自动将照片缩放到2000x2000像素以下。如果您想了解更多相关信息,可以find details on my blog。
但是,使用Crop方法是可行的方法。采取的步骤包括: