c#中new bitmap的问题
c#中BitmapI=newBitmap(pictureBox1.Image);明明pictureBox1.Image的PixelFormat=Format24bppRg...
c#中 Bitmap I = new Bitmap(pictureBox1.Image);
明明pictureBox1.Image的PixelFormat = Format24bppRgb
但是I的PixelFormat = Format32bppArgb
我要令I的PixelFormat = Format24bpprgb要怎么办?
那么这个alpha通道,我在进行彩色图像灰度化的时候,是不是可以不用它?我做了一个灰度化,但是图像整体偏黑,不知道是不是这个alpha对透明度的影响问题?
wefgod3你这个算法我一开始也采用了,很简单但是处理的速度很慢。一幅700*500的图片要处理几分钟。应该采用LockBits与UnlockBits的方法操作内存。如果有兴趣的话,可以参看http://zhidao.baidu.com/question/66246018.html?si=2 展开
明明pictureBox1.Image的PixelFormat = Format24bppRgb
但是I的PixelFormat = Format32bppArgb
我要令I的PixelFormat = Format24bpprgb要怎么办?
那么这个alpha通道,我在进行彩色图像灰度化的时候,是不是可以不用它?我做了一个灰度化,但是图像整体偏黑,不知道是不是这个alpha对透明度的影响问题?
wefgod3你这个算法我一开始也采用了,很简单但是处理的速度很慢。一幅700*500的图片要处理几分钟。应该采用LockBits与UnlockBits的方法操作内存。如果有兴趣的话,可以参看http://zhidao.baidu.com/question/66246018.html?si=2 展开
2个回答
展开全部
private void button1_Click(object sender, EventArgs e)
{
button4.Enabled = true;
Bitmap bmp1 = new Bitmap(pictureBox2.Image);
Bitmap bmp2 = new Bitmap(pictureBox2.Image);
Color c1, c2;
int a, r, g, b;
for (int x = 0; x < bmp1.Width; x++)
for (int y = 0; y < bmp1.Height; y++)
{
c1 = bmp2.GetPixel(x, y);
a = c1.A;
r = g = b = (c1.B + c1.G + c1.R) / 3;
c2 = Color.FromArgb(a,r,g,b);
bmp2.SetPixel(x, y, c2);
}
pictureBox2.Refresh();
pictureBox2.Image = bmp2;
}
灰度的算法
我过去自己写过
alpha的你没修改没什么问题吧?反正也就是透明度
{
button4.Enabled = true;
Bitmap bmp1 = new Bitmap(pictureBox2.Image);
Bitmap bmp2 = new Bitmap(pictureBox2.Image);
Color c1, c2;
int a, r, g, b;
for (int x = 0; x < bmp1.Width; x++)
for (int y = 0; y < bmp1.Height; y++)
{
c1 = bmp2.GetPixel(x, y);
a = c1.A;
r = g = b = (c1.B + c1.G + c1.R) / 3;
c2 = Color.FromArgb(a,r,g,b);
bmp2.SetPixel(x, y, c2);
}
pictureBox2.Refresh();
pictureBox2.Image = bmp2;
}
灰度的算法
我过去自己写过
alpha的你没修改没什么问题吧?反正也就是透明度
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询