我目前的目标是调整图像大小并在图像容器中使用它。 所以我目前所做的与此类似(从内存编码......下面可能有错误,但想法大致相同):
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图像的裁剪版本的建议?
非常感谢!