(原創) 如何使用C++/CLI读/写jpg檔? (.NET) (C++/CLI) (GDI+) (C/C++) (Image Processing)
生活随笔
收集整理的這篇文章主要介紹了
(原創) 如何使用C++/CLI读/写jpg檔? (.NET) (C++/CLI) (GDI+) (C/C++) (Image Processing)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Abstract
因為Computer Vision的作業(yè),之前都是用C# + GDI+寫,但這次的作業(yè)要做Grayscale Dilation,想用STL的Generic Algorithm寫,但C++ Standard Library并無法讀取jpg檔,用其它Library又比較麻煩,所以又回頭想到GDI+,能同時使用STL和GDI+的,也只有C++/CLI了,我想這也是C++/CLI的優(yōu)勢之一,可以讓你同時發(fā)揮.NET Framework和STL的power,以下的范例demo如何使用C++/CLI配合GDI+將jpg檔讀進來,并寫入jpg檔。
Introduction
此范例比須手動加上Reference System.Drawing.dll
?2(C)?OOMusou?2006?http://oomusou.cnblogs.com
?3
?4Filename????:?ReadJpg.cpp
?5Compiler????:?Visual?C++?8.0
?6Description?:?Demo?how?to?read/write?jpg?by?GDI+
?7Release?????:?11/19/2006
?8*/
?9
10#include?"stdafx.h"
11
12using?namespace?System::Drawing;
13using?namespace?System::Drawing::Imaging;
14
15int?main()?{
16??Bitmap?^originalImage?=?gcnew?Bitmap("lena.jpg");
17??Bitmap?^newImage?=?gcnew?Bitmap(originalImage->Width,?originalImage->Height);
18
19??for(int?x?=?0;?x!=?originalImage->Width;++x)?{
20????for(int?y?=?0;?y?!=?originalImage->Height;?++y)?{
21??????int?r?=?originalImage->GetPixel(x,y).R;
22??????int?g?=?originalImage->GetPixel(x,y).G;
23??????int?b?=?originalImage->GetPixel(x,y).B;
24
25??????newImage->SetPixel(x,y,?Color::FromArgb(r,?g,?b));
26????}
27??}
28
29??newImage->Save("newlena.jpg");
30
31??return?0;
32}
See Also
(原創(chuàng)) 如何使用ANSI C/ISO C++讀寫24位元的bmp圖檔? (初級) (C/C++)
(原創(chuàng)) 如何使用ANSI C讀寫32位元的BMP圖檔? (C/C++) (C) (Image Processing)
(原創(chuàng)) 如何使用ANSI C讀寫24/32位元的BMP圖檔? (C/C++) (C) (Image Processing)
(原創(chuàng)) 如何用程序的方式載入jpg圖形文件? (.NET) (GDI+) (ASP.NET) (Image Processing)
總結(jié)
以上是生活随笔為你收集整理的(原創) 如何使用C++/CLI读/写jpg檔? (.NET) (C++/CLI) (GDI+) (C/C++) (Image Processing)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到穿山甲幼崽预示着什么
- 下一篇: 梦到捉鱼和蛇是什么意思