博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
Go语言学习资料整理
查看>>
精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强
查看>>
麻将游戏
查看>>
用“ICET”轻松诊断 Windows 7 网络连接高级功能
查看>>
在MPAndroidChart库K线图的基础上画均线
查看>>
Gradle 1.12用户指南翻译——第四十四章. 分发插件
查看>>
查询远程或本地计算机的登录账户
查看>>
chk cloud
查看>>
asp.net事件顺序
查看>>
即时数据模块设计 版本V2
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>