Как обрезать изображение с помощью C#?

Используйте здесь пользовательскую функцию аутентификации:

Общие компоненты / Схемы аутентификации / (выберите текущие настройки) / / Имя функции аутентификации

И оставить только нормальный код апекса. Обратите внимание, что ваша пользовательская функция аутентификации должна возвращать логическое значение (true или false).

233
задан Neil Barnwell 9 April 2009 в 05:24
поделиться

5 ответов

Вы можете использовать Graphics.DrawImage для рисования обрезанного изображения на графическом объекте из растрового изображения .

Rectangle cropRect = new Rectangle(...);
Bitmap src = Image.FromFile(fileName) as Bitmap;
Bitmap target = new Bitmap(cropRect.Width, cropRect.Height);

using(Graphics g = Graphics.FromImage(target))
{
   g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height), 
                    cropRect,                        
                    GraphicsUnit.Pixel);
}
222
ответ дан axk 23 November 2019 в 03:31
поделиться

Проверьте эту ссылку: http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing

private static Image cropImage(Image img, Rectangle cropArea)
{
   Bitmap bmpImage = new Bitmap(img);
   return bmpImage.Clone(cropArea, bmpImage.PixelFormat);
}
257
ответ дан bato3 23 November 2019 в 03:31
поделиться

Это довольно просто:

  • Создать новый растровый объект с обрезанным размером.
  • Используйте Graphics.FromImage для создания объекта Graphics для нового растрового изображения.
  • Используйте метод DrawImage , чтобы нарисовать изображение на растровом изображении с отрицательные координаты X и Y.
5
ответ дан Guffa 23 November 2019 в 03:31
поделиться

Вот простой пример обрезки изображения

public Image Crop(string img, int width, int height, int x, int y)
{
    try
    {
        Image image = Image.FromFile(img);
        Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
        bmp.SetResolution(80, 60);

        Graphics gfx = Graphics.FromImage(bmp);
        gfx.SmoothingMode = SmoothingMode.AntiAlias;
        gfx.InterpolationMode = InterpolationMode.HighQualityBicubic;
        gfx.PixelOffsetMode = PixelOffsetMode.HighQuality;
        gfx.DrawImage(image, new Rectangle(0, 0, width, height), x, y, width, height, GraphicsUnit.Pixel);
        // Dispose to free up resources
        image.Dispose();
        bmp.Dispose();
        gfx.Dispose();

        return bmp;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        return null;
    }            
}
4
ответ дан Bill the Lizard 23 November 2019 в 03:31
поделиться

Предполагая, что вы хотите взять файл изображения (JPEG, BMP, TIFF и т. Д.) И обрезать его, а затем сохранить его в виде меньшего файла изображения, я предлагаю использовать сторонний инструмент с API .NET. Вот несколько популярных из них, которые мне нравятся:

LeadTools
Accusoft Pegasus Snowbound Imaging SDK

0
ответ дан 23 November 2019 в 03:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: