[.NET] Bitmap์ ๋ณด๊ฐ ์์ด ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ
์๊ฐ
MFC์์ ์นด๋ฉ๋ผ์ ์์์ Form์ ๊ทธ๋ฆฌ๊ธฐ ์ํด Picture Control์ ์ฃผ๋ก ์ฌ์ฉํ๋๋ฐ์.
C#์์๋ ๋น์ทํ๊ฒ Picture Box๊ฐ ์ ๊ณต๋์ด, ์ด ์ปจํธ๋กค์ ์นด๋ฉ๋ผ ์์์ ๊ทธ๋ฆด ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด์ํ๊ฒ๋ Picture Box(๋๋ Panel)์ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ฆฌ๊ฒ ๋๋ฉด Smoothing Filter๊ฐ ์ ์ฉ๋ ๊ฒ ์ฒ๋ผ ํํ๋ฉ๋๋ค.
<์ผ์ชฝ: ์๋ณธ, ์ค๋ฅธ์ชฝ: Graphics๋ก ๊ทธ๋ ค์ง ๋ชจ์ต>
ํ ๋์ ์ฐจ์ด๊ฐ ๋ณด์ด์ฃ ?
Bitmap ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ FromFile ์ ํธ์ถํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์์ ๋ฟ์ ๋๋ค.
๊ทธ๋์ ๊ทธ๋ ค์ง๋ ์ด๋ฏธ์ง ์์ฒด์ ๋ฐ์ดํฐ๋ ์ ์์ด์ง๋ง, ๊ทธ๋ ค์ง๋ ์์ ์์ ์ค๋ฌด์ฑ ํํฐ๊ฐ ์ ์ฉ๋ ๋ชจ์ต์ผ๋ก ๋ณด์ฌ์ง๋๋ค.
๋ณดํต์ ์ํ์ด๋ ๊ณก์ , ์ฃ์ง๋ฉด์ด ๋ถ๋๋ฝ๊ฒ ํํ๋๊ธธ ์ํ๋๋ฐ์.
๋จธ์ ๋น์ ์์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์๋ณธ ๋ฐ์ดํฐ ๊ทธ๋๋ก๋ฅผ ๋ณด์ฌ์ค์ผ ํฉ๋๋ค.
๋ฌผ๋ก ๊ทธ๋ ค์ง๋ ๋ถ๋ถ๋ง ์ ๋ ๊ฒ ํํ๋๋ ์๊ด ์์ง ์๊ฒ ๋๊ณ ํ ์๋ ์๊ฒ ์ง๋ง,
๊น๋ค๋ก์ด ์ฌ์ฉ์๋ค์ด ๊ฝค ๋ง๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์๊ณ ๊ณ์๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค์.
์ฝ๋ ์์
๋จผ์ , ์ฆ์์ด ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
C#์์๋ ๊ทธ๋ฆฌ๋ ์์ ์ ์ํด Graphics ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ MFC์ DC(Device context)๋ผ๊ณ ์ดํดํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
if (_Bitmap == null) //Bitmap object.
return;
e.Graphics.DrawImage(_bitmapTmp, pictureBox.ClientRectangle);
}
์ฝ๋๊ฐ ์๋นํ ๊ฐ๋จํ์ฃ ? DrawImage API๊ฐ ์ ๋ถ์ ๋๋ค.
์, ๊ทธ๋ผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๋ณด๊ฒ ์ต๋๋ค.
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
if (_Bitmap == null) //Bitmap object.
return;
e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; //Interpolation Mode
e.Graphics.DrawImage(_bitmapTmp, pictureBox.ClientRectangle);
}
Graphics์ ์ต์ ์ผ๋ก InterpolationMode ๋ฅผ NearestNeighbor ๋ก ๋ฐ๊พธ๋ฉด ๋ฉ๋๋ค.
๋ณดํต์ InterpolationMode๋ฅผ ๋๊ฒ ์ค์ ํ์ฌ Quality ๋์ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ฆฌ๊ฒ ์ง๋ง,
์ฐ๋ฆฌ์ ๋ชฉํ๋ ํฝ์ ํ๋ ํ๋ ๊ทธ๋ฆฌ๋ ๊ฒ์ด๋ฏ๋ก ์คํ๋ ค ๋ฎ์ถ๋ ๊ฒ์ ๋๋ค.
์ด ์ธ์๋ CompositingMode , SmoothingMode ๊ฐ์ ์ต์ ์ด ์์ผ๋ ์ฐธ๊ณ ํด์ฃผ์ธ์.
'Programming > .Net' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[.Net] 3'rd party library๋ฅผ C++/CLI๋ก C#์์ ์ฌ์ฉํ๊ธฐ ์ํ dll ๋ง๋ค๊ธฐ (์์ ํฌํจ)
[.Net] 3'rd party library๋ฅผ C++/CLI๋ก C#์์ ์ฌ์ฉํ๊ธฐ ์ํ dll ๋ง๋ค๊ธฐ (์์ ํฌํจ)
2020.02.29 -
[.Net] C++/CLI๋ก C#์์ ์ฌ์ฉํ๊ธฐ ์ํ dll ๋ง๋ค๊ธฐ (์์ ํฌํจ)
[.Net] C++/CLI๋ก C#์์ ์ฌ์ฉํ๊ธฐ ์ํ dll ๋ง๋ค๊ธฐ (์์ ํฌํจ)
2020.02.25 -
[.Net] C++/CLI ์ดํดํ๊ธฐ
[.Net] C++/CLI ์ดํดํ๊ธฐ
2020.02.22 -
[.Net] .Net Framework์ ๋์ปดํ์ผ๋ฌ(Decompiler) ILSpy ๋ฐ dotPeek ์์
[.Net] .Net Framework์ ๋์ปดํ์ผ๋ฌ(Decompiler) ILSpy ๋ฐ dotPeek ์์
2020.02.15