CxImage的编译及简单使用举例

1、  从http://sourceforge.net/projects/cximage/下载最新的CxImage 702源码;

2、  解压缩后,以管理员身份打开CxImageFull_vc10.sln工程,在编译之前先将每个工程属性的Character Set由原先的Use Unicode Character Set改为Use Multi-ByteCharacter Set,首先编译jasper、jbig、jpeg、libdcr、libpsd、mng、png、tiff、zlib这9个库,然后编译cximage,cximagecrtdll,在接着编译cximagemfcdll,在编译cximagemfcdll之前,先修改其属性,linker->input->Additional Dependencies,将$(OutDir)png.lib等改为../../Debug/png.lib(../../Release/png.lib),最后编译demo、demodll;全部编译完后即可生成相应的静态库和动态库;

3、  目前CxImage支持的图像格式包括:bmp、gif、jpg、png、ico、tif、tga、pcx、wbmp、wmf、jp2、jpc、pgx、pnm、ras、jbg、mng、ska、raw和psd;

4、  CxImage中所包含的图像操作可通过打开index.htm来查看;        

5、新建一个控制台工程testCxImage,将Character Set设为Use Multi-Byte Character Set,各个文件的内容为:

stdafx.h:

 

[cpp] view plain copy

 

  1. #pragma once  
  2.   
  3. #include "targetver.h"  
  4.   
  5. #include <stdio.h>  
  6.   
  7. #include "../../cximage702_full/CxImage/ximage.h"  

stdafx.cpp:

 

 

[cpp] view plain copy

 

  1. #include "stdafx.h"  
  2.   
  3. // TODO: reference any additional headers you need in STDAFX.H  
  4. // and not in this file  
  5.   
  6. #ifdef _DEBUG  
  7.     #pragma comment(lib, "../../cximage702_full/Debug/cximage.lib")  
  8.     #pragma comment(lib, "../../cximage702_full/Debug/jasper.lib")  
  9.     #pragma comment(lib, "../../cximage702_full/Debug/jbig.lib")  
  10.     #pragma comment(lib, "../../cximage702_full/Debug/jpeg.lib")  
  11.     #pragma comment(lib, "../../cximage702_full/Debug/libdcr.lib")  
  12.     #pragma comment(lib, "../../cximage702_full/Debug/libpsd.lib")  
  13.     #pragma comment(lib, "../../cximage702_full/Debug/mng.lib")  
  14.     #pragma comment(lib, "../../cximage702_full/Debug/png.lib")  
  15.     #pragma comment(lib, "../../cximage702_full/Debug/tiff.lib")  
  16.     #pragma comment(lib, "../../cximage702_full/Debug/zlib.lib")  
  17. #else  
  18.     #pragma comment(lib, "../../cximage702_full/Release/cximage.lib")   
  19.     #pragma comment(lib, "../../cximage702_full/Release/jasper.lib")  
  20.     #pragma comment(lib, "../../cximage702_full/Release/jbig.lib")  
  21.     #pragma comment(lib, "../../cximage702_full/Release/jpeg.lib")  
  22.     #pragma comment(lib, "../../cximage702_full/Release/libdcr.lib")  
  23.     #pragma comment(lib, "../../cximage702_full/Release/libpsd.lib")  
  24.     #pragma comment(lib, "../../cximage702_full/Release/mng.lib")  
  25.     #pragma comment(lib, "../../cximage702_full/Release/png.lib")  
  26.     #pragma comment(lib, "../../cximage702_full/Release/tiff.lib")  
  27.     #pragma comment(lib, "../../cximage702_full/Release/zlib.lib")  
  28. #endif  

testCxImage.cpp:

 

 

[cpp] view plain copy

 

  1. #include "stdafx.h"  
  2. #include <iostream>  
  3. #include <string>  
  4.   
  5. using namespace std;  
  6.   
  7. int main(int argc, char* argv[])  
  8. {  
  9.     CxImage image;  
  10.     string imageName = "1.jpg";  
  11.     string imageSave = "2.tif";  
  12.   
  13.     image.Load(imageName.c_str(), CXIMAGE_FORMAT_JPG);  
  14.   
  15.     cout<<image.GetBpp()<<endl;  
  16.   
  17.     if (image.IsValid()) {  
  18.         image.GrayScale();  
  19.         image.Save(imageSave.c_str(), CXIMAGE_FORMAT_TIF);  
  20.   
  21.         cout<<"success"<<endl;  
  22.     }  
  23.   
  24.     cout<<"ok"<<endl;  
  25.     return 0;  
  26. }  

GitHubhttps://github.com/fengbingchun/CxImage_Test

时间: 2024-07-31 02:50:57

CxImage的编译及简单使用举例的相关文章

Knockout应用开发指南 第八章:简单应用举例(2)

原文:Knockout应用开发指南 第八章:简单应用举例(2) 5   Control types 这个例子,对view model没有什么特殊的展示,只是展示如何绑定到各种元素上(例如,select, radio button等).   代码: View View Code <div class="readout"><h3> What's in the model?</h3><table><tr><td class=&

Knockout应用开发指南 第八章:简单应用举例(1)

原文:Knockout应用开发指南 第八章:简单应用举例(1) 本章展示的4个例子主要是利用了Knockout的基本语法特性,让大家感受到使用Kncokout的快感. 1   Hello world 这个例子里,2个输入框都被绑定到data model上的observable变量上."full name"显示的是一个dependent observable,它的值是前面2个输入框的值合并一起的结果.    无论哪个输入框更新,都会看到"full name" 显示结果

stringbuilder-太没有道理了,g++编译这么简单的程序出现错误:‘string’不是一个类型名

问题描述 太没有道理了,g++编译这么简单的程序出现错误:'string'不是一个类型名 using namespace std;#include templateclass tree_node_t{public: string &to_string(string *result int prefix = 0); void set_data(const T &data); protected: T m_data;}; vs编译得好好的,g++怎么了,老是这些莫名其妙的错误?哪位高手能看出端

android开发实践之ndk编译命令简单示例

前言 Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别.加载和运行的库或者应用程序. 默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行ndk-build命令完成编译.其实你也是可以在任意目录下去编译native代码

js函数简单调用举例说明

我们用一个按钮调用一下这个函数:将按钮的点击事件指向这个方法 <input type="button" value="click me" onclick="hanshu()"> 现在我在此方法中再写一个方法 我们在这个方法中将body的点击事件指向了一个新的方法,匿名方法.然后弹出click body function addclick() {    // 这样不能实现把body的单击事件指给新的方法, 因为body不能访问在函数体里

C++语言基础 例程 类和对象的简单应用举例

贺老师的教学链接  本课讲解 实例1:求出三角形的周长和面积 #include<iostream> #include<Cmath> #include<cstdlib> using namespace std; class Triangle { public: void setABC(double x, double y, double z);//置三边的值,注意要能成三角形 double perimeter();//计算三角形的周长 double area();//计算

在Linux上编译iOS程序

phpwind appcreator是向站长提供的自助app生成平台,目前只支持Android,为了支持iOS,搜了一些相关资料,发现可以在Linux上来编译iOS程序,但最后的签名什么的还没细究. 主要用到了一些cjacker移植的工具链(应该是基于苹果公司开源的一些代码),以及他开发的iphonesdk-utils(主要是一些辅助工具,比如ios-clang,会探测iPhone SDK,并自动加上一些参数来调用clang,避免自己手写很多参数,比如 --target 等). 介绍下具体步骤:

ubuntu 下 cocos2dx游戏引擎的搭建、编译和使用

cocos2dx是一个基于c++ opengl的二维游戏引擎 开源免费 支持跨平台发布 包括windows linux 安卓 苹果等等 我想用一个二维引擎入门学习游戏应该是个不错的选择 而且这个引擎作品不少 尤其是国内的作品 比如史上最坑爹游戏 捕鱼达人(这个游戏作者还专门用这个游戏为例子写了一本教程)因为个人喜好 一直喜欢在linux(我的ubuntu)上搭建各种平台 这次也不例外 经过各种百度谷歌查找文档 终于搭建好了 从笔记拿出来分享下 一引擎目录分析 首先下载引擎源码 打开查看目录结构

JDBC之PreparedStatement类中预编译的综合应用解析

SQL 语句被预编译并存储在 PreparedStatement 对象中.然后可以使用此对象多次高效地执行该语句   预编译的优点1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程. 2.使用 Statement 对象.在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理.PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处. 3.statement每次执行sql语句,相关数