0

次のコードがあります

int oswidth = 0;
int osheight = 0;

        if (comboBox3.SelectedIndex == 0)
        {
            oswidth = Convert.ToInt32(textBox5.Text.ToString());
            osheight = Convert.ToInt32(textBox6.Text.ToString());
        }
        else if (comboBox3.SelectedIndex == 1)
        {
            oswidth = 38 * Convert.ToInt32(textBox5.Text.ToString());
            osheight = 38 * Convert.ToInt32(textBox6.Text.ToString());


        }

        Bitmap oldimg = new Bitmap(pictureBox3.Image);
        Bitmap objBitmap = new Bitmap(oldimg, new Size(oswidth, osheight));
        objBitmap.Save(pictureBox3.ImageLocation.ToString(), ImageFormat.Jpeg);

問題は、選択したインデックスが 0 の場合は正常に動作しますが、選択したインデックスが 1 の場合、「パラメーターが無効です」というエラーが表示されることです。
別の画像を試しましたが、同じエラーが発生しました。それは32倍のことですか

4

2 に答える 2

2

ビットマップを作成しようとしたときのParameter is not validエラー メッセージは、通常、割り当てようとしているメモリが多すぎることを意味します。ビットマップには連続しbit-depth*width*height/8たメモリのバイト数が必要ですが、それを満たすには十分ではありません。

この場合、その次元に 38 を掛けている (したがって、メモリ内のサイズに 38^2 を掛けている) ためのように見えます。

于 2014-09-08T14:16:09.473 に答える