如何在不遍历所有图片的情况下在C#中使图片变亮';s像素?
我对图片的亮度有问题。我知道我可以通过增加/减少像素值来实现这一点,但这不是我想要的。有人告诉我,有一种方法不需要遍历所有像素,而且速度更快。如何做到这一点?谢谢。要更改图片亮度,您必须始终更改每个像素(如果它不是基于矢量的图形)。我认为遍历所有像素应该是唯一的方法。 也许有一个框架可以帮你完成这项工作。或者你可以寻找一种快速算法,将像素矩阵组合成一个子像素。总而言之,有许多可能性。图像处理是一个复杂的课题如何在不遍历所有图片的情况下在C#中使图片变亮';s像素?,c#,image,drawing,pixel,raster,C#,Image,Drawing,Pixel,Raster,我对图片的亮度有问题。我知道我可以通过增加/减少像素值来实现这一点,但这不是我想要的。有人告诉我,有一种方法不需要遍历所有像素,而且速度更快。如何做到这一点?谢谢。要更改图片亮度,您必须始终更改每个像素(如果它不是基于矢量的图形)。我认为遍历所有像素应该是唯一的方法。 也许有一个框架可以帮你完成这项工作。或者你可以寻找一种快速算法,将像素矩阵组合成一个子像素。总而言之,有许多可能性。图像处理是一个复杂的课题 您可以在这里找到一些示例:您在System.Drawing代码中使用ColorMatri
您可以在这里找到一些示例:您在System.Drawing代码中使用ColorMatrix类以高度优化的方式应用颜色转换。直接支持亮度和对比度更改等效果。显示矩阵的外观。要使图像变亮,可以在其上应用白色薄雾:
Bitmap bmp = new Bitmap(@"Image.png");
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
alpha = 128
using (Graphics g = Graphics.FromImage(bmp)) {
using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.White))) {
g.FillRectangle(cloud_brush, r);
}
}
bmp.Save(@"Light.png");
Bitmap bmp = new Bitmap(@"Image.png");
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
alpha = 128
using (Graphics g = Graphics.FromImage(bmp)) {
using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.Black))) {
g.FillRectangle(cloud_brush, r);
}
}
bmp.Save(@"Dark.png");
alpha值的范围从0到255。0表示效果完全透明,从而生成原始图像。255表示效果是完全不透明的,从而形成纯白色矩形。这里,效果用128表示
要使图像变暗,可以在其上应用黑色薄雾:
Bitmap bmp = new Bitmap(@"Image.png");
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
alpha = 128
using (Graphics g = Graphics.FromImage(bmp)) {
using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.White))) {
g.FillRectangle(cloud_brush, r);
}
}
bmp.Save(@"Light.png");
Bitmap bmp = new Bitmap(@"Image.png");
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
alpha = 128
using (Graphics g = Graphics.FromImage(bmp)) {
using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.Black))) {
g.FillRectangle(cloud_brush, r);
}
}
bmp.Save(@"Dark.png");
alpha值的范围从0到255。0表示效果完全透明,从而生成原始图像。255表示效果是完全不透明的,从而形成实心黑色矩形。这里,效果用128表示
是否要使用库?你找过一点吗?如果您使用WPF,我相信您可以做些什么。我使用的是windows窗体。也许可以在图片上覆盖一个半透明元素?@David my Thinks,
FillRectangle
,白色和alpha应该可以做到这一点。@Patryk windows窗体不是为此而设计的。查找处理此问题的外部库。。。