Как я могу обрезать определенную область из изображения, в то время как выбранная область не является идеальным прямоугольником? В этом image, как я могу обрезать область, отличную от красной, на разные части?Обрезать изображение, когда область обрезки не является прямоугольником
ответ
Чтобы изолировать непрямоугольные области изображения и/или области на основе цвета, мощный метод заключается в использовании свойства alpha/transparent для 32-битных изображений. Например, изображение слева - это оригинальное 24-битное изображение (без альфы), а справа - результат преобразования этого изображения в 32 бит и установка альфа = 0 для всех пикселей, которые являются белыми или красными в оригинальное изображение. Эффективно это может сделать ваше изображение не прямоугольным.
Код для этого достаточно просто. В приведенном ниже методе используется входной битмап (24 бит), генерируется пустое 32-битное изображение и передается все пиксели от источника до адресата, устанавливая альфа-значение 0 для всех белых или красных пикселей.
public Bitmap ModifyAlpha(Bitmap bmap)
{
Bitmap bmap32 = new Bitmap(bmap.Width, bmap.Height, PixelFormat.Format32bppArgb);
Color theColor = new Color();
Color newColor = new Color();
for (int i = 0; i < bmap.Width; i++)
{
for (int j = 0; j < bmap.Height; j++)
{
// Get the color of the pixel at (i,j)
theColor = bmap.GetPixel(i, j);
// Set the pixel color/range you want to make transparent
if ((theColor.R > 250 && theColor.G > 250 && theColor.B > 250) ||
(theColor.R > 250))
{
newColor = Color.FromArgb(0, theColor.R, theColor.G, theColor.B);
bmap32.SetPixel(i, j, newColor);
} else
{
bmap32.SetPixel(i, j, theColor);
}
}
}
return bmap32;
}
- 1. Обрезать изображение в C#
- 2. Как обрезать изображение в андроиде с помощью настраиваемого макета обрезки?
- 3. Как обрезать/обрезать изображение равномерно в ImageMagick?
- 4. Изображение обрезки из UIImageView
- 5. Не обрезать выделенную область
- 6. Обрезать изображение в swift
- 7. Обрезать прямоугольную область в opencv
- 8. Автоматическое изображение обрезки и выгрузки
- 9. Курсор в Android Studio для Mac является прямоугольником область
- 10. Обрезать изображение в android
- 11. Масштаб и изображение обрезки
- 12. Изображение обрезки WPF
- 13. Как обрезать изображение без использования обрезки внутренней камеры
- 14. jquery - обрезать изображение с помощью «обрезки» - на холсте
- 15. Изображение обрезки с фиксированным соотношением x/y
- 16. Изображение обрезки в круглой форме
- 17. Изменение размера и изображение обрезки
- 18. Получить область обрезки PDF с PDF.js?
- 19. Обрезка обрезки окон в область
- 20. Область пересечения между кругом и прямоугольником
- 21. Как обрезать Pdf с принтером/меток обрезки
- 22. как я могу настроить изображение обрезать
- 23. Как обрезать внутреннюю область контура?
- 24. Обрезать изображение фиксированного размера в Android
- 25. С PHP/GD, как мне обрезать изображение?
- 26. Изображение обрезки в Android не работает
- 27. Обрезать изображение в прямоугольную форму, когда точки обрезки находятся на любой форме, которая имеет 4 точки - IOS/Swift
- 28. Не удалось получить изображение после обрезки Android
- 29. Как обрезать UIImage, выбирая область
- 30. Когда приемлемо не обрезать строку ввода пользователя?
Изображение может быть только прямоугольным. Глядя на изображение, я понятия не имею, что вы хотите. Может быть, [что-то вроде этого?] (Http://stackoverflow.com/questions/30954503/how-to-crop-a-polygonal-area-from-an-image -in-a-winform-picturebox/30954946? s = 4 | 1.5201 # 30954946) – TaW
Я думаю, это зависит от того, что вы подразумеваете под «обрезкой». Если это изображение ARGB (с альфа/прозрачностью), и вы хотите сделать пиксели определенного цвета, например, прозрачными, вы можете сделать Bitmap.GetPixel() и проверить цвет, который вы хотите скрыть, и настроить альфа для этого пикселя, я полагаю. –
Сделайте себе одолжение и прочитайте книгу об основах обработки изображений или, по крайней мере, некоторых учебных пособиях ... термины, которые могут помочь: aoi, roi, mask – Piglet