博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原創) 如何使用C++/CLI读/写jpg檔? (.NET) (C++/CLI) (GDI+) (C/C++) (Image Processing)
阅读量:6248 次
发布时间:2019-06-22

本文共 1145 字,大约阅读时间需要 3 分钟。

Abstract

因为Computer Vision的作业,之前都是用C# + GDI+写,但这次的作业要做Grayscale Dilation,想用STL的Generic Algorithm写,但C++ Standard Library并无法读取jpg档,用其它Library又比较麻烦,所以又回头想到GDI+,能同时使用STL和GDI+的,也只有C++/CLI了,我想这也是C++/CLI的优势之一,可以让你同时发挥.NET Framework和STL的power,以下的范例demo如何使用C++/CLI配合GDI+将jpg档读进来,并写入jpg檔。

Introduction

此范例比须手动加上Reference System.Drawing.dll

 1
ExpandedBlockStart.gif
ContractedBlock.gif
/**/
/* 
 2InBlock.gif(C) OOMusou 2006 http://oomusou.cnblogs.com
 3InBlock.gif
 4InBlock.gifFilename    : ReadJpg.cpp
 5InBlock.gifCompiler    : Visual C++ 8.0
 6InBlock.gifDescription : Demo how to read/write jpg by GDI+
 7InBlock.gifRelease     : 11/19/2006
 8ExpandedBlockEnd.gif*/
 9
None.gif
10
None.gif#include 
"
stdafx.h
"
11
None.gif
12
None.gif
using
 
namespace
 System::Drawing;
13
None.gif
using
 
namespace
 System::Drawing::Imaging;
14
None.gif
15
ExpandedBlockStart.gifContractedBlock.gif
int
 main() 
dot.gif
{
16InBlock.gif  Bitmap ^originalImage = gcnew Bitmap("lena.jpg");
17InBlock.gif  Bitmap ^newImage = gcnew Bitmap(originalImage->Width, originalImage->Height);
18InBlock.gif
19ExpandedSubBlockStart.gifContractedSubBlock.gif  for(int x = 0; x!= originalImage->Width;++x) dot.gif{
20ExpandedSubBlockStart.gifContractedSubBlock.gif    for(int y = 0; y != originalImage->Height; ++y) dot.gif{
21InBlock.gif      int r = originalImage->GetPixel(x,y).R;
22InBlock.gif      int g = originalImage->GetPixel(x,y).G;
23InBlock.gif      int b = originalImage->GetPixel(x,y).B;
24InBlock.gif
25InBlock.gif      newImage->SetPixel(x,y, Color::FromArgb(r, g, b));
26ExpandedSubBlockEnd.gif    }
27ExpandedSubBlockEnd.gif  }
28InBlock.gif
29InBlock.gif  newImage->Save("newlena.jpg");
30InBlock.gif
31InBlock.gif  return 0;
32ExpandedBlockEnd.gif}
See Also

转载地址:http://rvria.baihongyu.com/

你可能感兴趣的文章
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>