1

現在、画像のサイズを変更して画像コンテナーで使用することを目指しています。したがって、私が現在行っていることはこれに似ています(メモリからのコーディング..以下に間違いがあるかもしれませんが、考え方はほぼ同じです):

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からの画像のトリミングされたバージョンではなく、ディスク上の画像のトリミングされたバージョンを取得している理由について誰かがアドバイスを提供できますか?

どうもありがとう!

4

0 に答える 0