Graphics object to image file

前端 未结 3 2032
说谎
说谎 2020-12-06 11:56

I would like to crop and resize my image. Here is my code:

Image image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + \"Cropper/tests/castle.jpg\")         


        
3条回答
  •  广开言路
    2020-12-06 12:05

    The Graphics object that you get from Graphics.FromImage is a drawing surface for the image. So you can simply save the image object when you are done.

    string fileName = AppDomain.CurrentDomain.BaseDirectory + "Cropper/tests/castle.jpg");
    using (Image image = Image.FromFile(fileName)
    {
        using (Graphics graphic = Graphics.FromImage(image))
        {
            // Crop and resize the image.
            Rectangle destination = new Rectangle(0, 0, 200, 120);
            graphic.DrawImage(image, destination, int.Parse(X1.Value), int.Parse(Y1.Value), int.Parse(Width.Value), int.Parse(Height.Value), GraphicsUnit.Pixel);
        }
        image.Save(fileName);
    }
    

    Beware though that doing this repeatedly on a jpg image may not be a good thing; the image is re-encoded each time and since jpg uses a destructive compression method you will lose some image quality each time. I wouldn't worry about that if this is a once-per-image operation though.

提交回复
热议问题