原理: 对图像像素点的像素值分别与相邻像素点的像素值相减后加上128, 然后将其作为新的像素点的值.
效果图:
代码实现:
浮雕效果
private
void
button1_Click(
object
sender, EventArgs e)
{
//
以浮雕效果显示图像
try
{
int
Height
=
this
.pictureBox1.Image.Height;
int
Width
=
this
.pictureBox1.Image.Width;
Bitmap newBitmap
=
new
Bitmap(Width, Height);
Bitmap oldBitmap
=
(Bitmap)
this
.pictureBox1.Image;
Color pixel1, pixel2;
for
(
int
x
=
0
; x
<
Width
-
1
; x
++
)
{
for
(
int
y
=
0
; y
<
Height
-
1
; y
++
)
{
int
r
=
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
(Exception ex)
{
MessageBox.Show(ex.Message,
"
信息提示
"
, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
浮雕效果
最新推荐文章于 2021-11-19 05:00:00 发布