没有合适的资源?快使用搜索试试~ 我知道了~
首页使用C#实现photoshop的功能
资源详情
资源评论
资源推荐

原始图片:ISINBAEVA~~~~~~~~
一.底 片效果
原理:GetPixel 方法获得每一点像素的值,然后再使用 SetPixel 方法将取反后
的颜色值设置到对应的点.
效果图:
代 码实现:
底片效果

privatevoidbutton1_Click(objectsender,EventArgse)
{
//以底片效果显示图像
try
{
intHeight=this.pictureBox1.Image.Height;
intWidth=this.pictureBox1.Image.Width;
Bitmapnewbitmap=newBitmap(Width,Height);
Bitmapoldbitmap=(Bitmap)this.pictureBox1.Image;
Colorpixel;
for(intx=1;x<Width;x++)
{
for(inty=1;y<Height;y++)
{
intr,g,b;
pixel=oldbitmap.GetPixel(x,y);
r=255-pixel.R;
g=255-pixel.G;
b=255-pixel.B;
newbitmap.SetPixel(x,y,Color.FromArgb(r,g,b));
}
}
this.pictureBox1.Image=newbitmap;
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"信息提示",MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
二.浮 雕效果
原理:对图像像素点的像素值分别与相邻像素点的像素值相减后加上 128,然后
将其作为新的像素点的值.
效果 图:

代 码实现:
浮雕效果
privatevoidbutton1_Click(objectsender,EventArgse)
{
//以浮雕效果显示图像
try
{
intHeight=this.pictureBox1.Image.Height;
intWidth=this.pictureBox1.Image.Width;
BitmapnewBitmap=newBitmap(Width,Height);
BitmapoldBitmap=(Bitmap)this.pictureBox1.Image;
Colorpixel1,pixel2;
for(intx=0;x<Width-1;x++)
{
for(inty=0;y<Height-1;y++)
{
intr=0,g=0,b=0;
pixel1=oldBitmap.GetPixel(x,y);
pixel2=oldBitmap.GetPixel(x+1,y+1);
r=Math.Abs(pixel1.R-pixel2.R+128);
g=Math.Abs(pixel1.G-pixel2.G+128);
b=Math.Abs(pixel1.B-pixel2.B+128);
if(r>255)
r=255;
if(r<0)
r=0;
if(g>255)
g=255;
if(g<0)
g=0;

if(b>255)
b=255;
if(b<0)
b=0;
newBitmap.SetPixel(x,y,Color.FromArgb(r,g,b));
}
}
this.pictureBox1.Image=newBitmap;
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"信息提示",MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
三.黑 白效果
原理:彩色图像处理成黑白效果通常有 3 种算法;
(1).最大值法:使每 个像素点的 R,G,B值等于原像素点的 RGB(颜色值)中最
大的一个;
(2).平均值法:使用每个像素点的 R,G,B 值等于原像素点的 RGB 值的平均值;
(3).加权平均值法:对每个像素点的 R,G,B 值进行加权
---自认为第三种方法做出来的黑白效果图像最 "真实".
效果图:
代 码实现:
剩余18页未读,继续阅读










安全验证
文档复制为VIP权益,开通VIP直接复制

评论6