2

WP7 Camera サンプルを使用していますが、画像をキャプチャするときに質問がありました。現在標準の480(w)×800(h)で撮影しています。私のアプリでは画像が完全な正方形である必要があるため、私がやろうとしているのは正方形として写真を撮ることです。

VideoBrush を調整して 480x480 のみを表示するようにしました。元に撮影された画像は正方形の写真を撮影したように見えますが、Pictures ハブ内を確認すると、通常の 480x800 の縦長です。

カメラを設定して正方形の写真を撮ったり、上下を切り取ったりする方法を知っている人はいますか?

4

1 に答える 1

4

ピクセルを新しいビットマップに手動でコピーする必要があります。したがって、カメラが水平で、新しい幅が高さと等しくなるように画像の左側の部分をトリミングしたい場合は、次のようなものが機能します (このコードはテストしていませんが、100% 正しくなくても、基本的なアイデアを提供する必要があります):

     WriteableBitmap SquareImage(WriteableBitmap srcBitmap)
     {
         int[] srcData = srcBitmap.Pixels;
         int[] destData = new int[srcBitmap.PixelHeight * srcBitmap.PixelHeight];

         for (int row = 0; row < srcBitmap.PixelHeight; ++row)
        {
            for (int col = 0; col < srcBitmap.PixelHeight; ++col)
            {
                destData[(row * srcBitmap.PixelHeight) + col] = srcData[(row * srcBitmap.PixelWidth) + col];
            }
        }

         WriteableBitmap squareBitmap = new WriteableBitmap(srcBitmap.PixelHeight, srcBitmap.PixelHeight);
         destData.CopyTo(squareBitmap.Pixels, 0);

         return squareBitmap;
    }
于 2012-06-02T04:25:06.970 に答える