我目前的目标是调整图像大小并在图像容器中使用它。所以我目前正在做的事情与此类似(从内存编码..可能在下面有错误,但想法大致相同):
BitmapImage test = new BitmapImage;
test.begininit();
test.source = new Uri("myimage.png");
test.decodepixelwidth = 300;
test.decodepixelheight = 220;
test.endinit();
MyPictureContainer1.Source = test;
这会将图像加载到我的容器中。现在我有另一个容器,我从第一个容器中加载图像,如下所示:
double x,y,w,h;
x = 10;
y = 10;
w = 60;
h = 150;
BitmapImage test2 = new BitmapImage;
test2.begininit();
test2.source = MyPictureContainer1.Source;
test2.sourcerect = new Int32Rect( x, y ,w , h)
test2.endinit();
MyPictureContainer2.Source = test2;
然而,尽管从 MyPictureContainer1 拍摄了调整大小的图片,并在其上绘制了一个矩形蒙版(或我将其视为矩形蒙版),但 MyPictureContainer2 中的图像是存储在磁盘上的图像的实际分辨率,而不是包含的调整大小的版本在 MyPictureContainer1 中。
我希望这是有道理的,有人可以就为什么我在磁盘上获得图像的裁剪版本而不是来自 MyPictureContainer1 的图像的裁剪版本提供建议?
非常感谢!