web-dev-qa-db-ja.com

C#で画像の一部を切り取る方法

他の大きな画像から長方形の画像を切り取るため

300 x 600 image.png。があるとしましょう

X:10 Y 20、200、高さ100で長方形を切り、それを他のファイルに保存したい。

C#でどうすればよいですか?

ありがとう!!!

20
Developer

MSDNの Graphics Class をご覧ください。

次に、正しい方向を示す例を示します(Rectangleオブジェクトに注意してください)。

public Bitmap CropImage(Bitmap source, Rectangle section)
{
    // An empty bitmap which will hold the cropped image
    Bitmap bmp = new Bitmap(section.Width, section.Height);

    Graphics g = Graphics.FromImage(bmp);

    // Draw the given area (section) of the source image
    // at location 0,0 on the empty bitmap (bmp)
    g.DrawImage(source, 0, 0, section, GraphicsUnit.Pixel);

    return bmp;
}

// Example use:     
Bitmap source = new Bitmap(@"C:\tulips.jpg");
Rectangle section = new Rectangle(new Point(12, 50), new Size(150, 150));

Bitmap CroppedImage = CropImage(source, section);
30
James Hill

画像を作成する別の方法は、特定の開始点とサイズで画像を複製することです。

int x= 10, y=20, width=200, height=100;
Bitmap source = new Bitmap(@"C:\tulips.jpg");
Bitmap CroppedImage = source.Clone(new System.Drawing.Rectangle(x, y, width, height), source.PixelFormat);
23
Abhijit Amin