Как я могу написать приложение, которое будет обрезать изображения в C #?
c#
image-processing
sandy101
источник
источник
DrawImageUnscaledAndClipped
более эффективным, чемDrawImage
для обрезки?Проверьте эту ссылку: http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing
источник
Проще, чем принятый ответ:
и это исключает риск исключения « Недостаточно памяти » из самого простого ответа.
Обратите внимание, что
Bitmap
иGraphics
,IDisposable
следовательно, являютсяusing
пунктами.РЕДАКТИРОВАТЬ : Я считаю, что это хорошо с PNG, сохраненными
Bitmap.Save
или Paint.exe, но не с PNG, сохраненными, например, Paint Shop Pro 6 - содержимое смещено. ДобавлениеGraphicsUnit.Pixel
дает другой неправильный результат. Возможно, только эти неисправные PNG неисправны.источник
Bitmap
иGraphics
естьIDisposable
- добавитьusing
пунктэто может быть необходимо сделать, даже если вы реализуете лучший ответ здесь, особенно если ваше изображение действительно велико, а разрешение не совсем 96.0
Мой тестовый пример:
источник
Это довольно просто:
Bitmap
объект с обрезанным размером.Graphics.FromImage
для созданияGraphics
объекта для нового растрового изображения.DrawImage
метод, чтобы нарисовать изображение на растровом изображении с отрицательными координатами X и Y.источник
Вот простой пример обрезки изображения
источник
Если вы используете AForge.NET :
источник
Я искал простую и быструю функцию без дополнительной библиотеки, чтобы сделать работу. Я попробовал решение Nicks , но мне потребовалось 29,4 секунды, чтобы «извлечь» 1195 изображений из файла атласа. Позже я справился с этим и мне понадобилось 2,43 секунды, чтобы выполнить ту же работу. Может быть, это будет полезно.
источник
Обрезать изображение очень легко в C #. Однако, делать вещи, как вы собираетесь управлять кадрированием вашего изображения, будет немного сложнее.
Пример ниже - способ обрезки изображения в C #.
источник
Существует обертка C # для того, что с открытым исходным кодом, размещенное в Codeplex, называется Web Image Cropping.
Зарегистрировать контроль
<%@ Register Assembly="CS.Web.UI.CropImage" Namespace="CS.Web.UI" TagPrefix="cs" %>
Изменение размера
Обрезка кода позади - например, вызов метода обрезки при нажатии кнопки;
wci1.Crop(Server.MapPath("images/sample1.jpg"));
источник
Предполагая, что вы имеете в виду, что вы хотите взять файл изображения (JPEG, BMP, TIFF и т. Д.) И обрезать его, а затем сохранить его как файл меньшего размера, я предлагаю использовать сторонний инструмент с API .NET. Вот несколько популярных из них, которые мне нравятся:
SDK LeadTools
Accusoft Pegasus для съемки снега
источник
Только этот образец работает без проблем:
источник
Это другой способ. В моем случае у меня есть:
Внутри кнопки у меня есть этот код:
Я попробовал это в Visual Studio 2012, используя C #. Я нашел это решение с этой страницы
источник
здесь работает демо на github
https://github.com/SystematixIndore/Crop-SaveImageInCSharp
Логика кода C # для загрузки и обрезки.
источник