JPEG图形显示、图像数据的DB存取。

本文介绍了在开发一个图片管理数据库时遇到的JPEG图片显示问题,特别是CMYK格式的图片在C/S模式下显示不正常。通过使用Intel的IJL15库和GDI++,成功解决了CMYK JPEG的显示问题。同时,文章讨论了如何在Borland C++ Builder中整合和使用这些库,并展示了自定义类TmyPict用于JPEG数据的读取和存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

最近应朋友之邀开发一个图片管理数据库。 其中在处理JPEG图片时遇到很大问题,现将这个过程记录下来,一为总结存档,二为其它遇到此问题的朋友提供参考。

一、系统目的、问题。

该图片系统采用C/S模式开发,用户将本地的JPEG图片文件提交到后台SQL Server2000数据库中保存,以后用户可以从此数据库中查阅、显示图片。客户端用C++Builder(以下简称BC)开发,初期开发、测试后没有问题。但实际应用时发现图片显示不正常。后反复调试、咨询客户发现问题出在JPEG格式上。JPEG文件中有颜色模式差别,RGB格式的在程序中显示正常,但CMYK格式的图片显示就不正常,但CMYK是印刷行业采用的,原始图片数据不能转变成RGB格式,否则在印刷中无法应用。故如何显示CMYK颜色模式的JPEG图片出现问题。因为程序中以表格形式显示内容,其中一个Cell绘制图形,所以不能用第三方控件解决这个问题、只能自己绘该图形。

二、解决方案

1)CMYK颜色JPEG文件的显示。

1.1、方法一、初期我们在网上查找下载了Intel的IJL15库,使用该库提供的函数,可以将JPEG数据解压为Bitmap图,然后绘制该Bitmap图。其中的主要过程是:

a)BC不能直接使用IJL库,首先要转化。过程是

Step1:拷贝IJL15.DLL到开发目录下

Step2:在命令行方式下进入开发目录,执行BC的implib,格式为:

implib IJL15BC.LIB IJL15.DLL

其中,IJL15BC.LIB是要生成的库,在BC程序中可以使用。凡是BC程序想用适合VC使用的DLL都可以采用这个办法。

Step3:在程序主模块、或使用IJL库的模块中加入:

#pragma comment(lib, "IJL15BC.LIB")

该语句只需在一个地方加一次即可

Step4:使用IJL15.h时按如下格式

#pragma option -b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值