废话不说,先上代码。BOOL SaveJpgImage(IplImage * pImg,char * dir,BOOL bColor,UINT nQuality)
{
if(pImg==NULL)return FALSE;
JPEG_CORE_PROPERTIES image;
ZeroMemory(&image, sizeof(JPEG_CORE_PROPERTIES));
if(ijlInit(&image)!=IJL_OK)return FALSE;
image.jquality = nQuality;
image.upsampling_reqd = image.cconversion_reqd = FALSE;
image.DIBWidth = pImg->width;
image.DIBHeight = pImg->height;
image.DIBBytes = (unsigned char * )pImg->imageData;
image.JPGFile = dir;
image.JPGBytes = NULL;
image.JPGSizeBytes = pImg->imageSize;
image.JPGWidth = pImg->width;
image.JPGHeight = pImg->height;
image.DIBColor =IJL_BGR;
image.DIBChannels =3;
image.DIBPadBytes =IJL_DIB_PAD_BYTES(image.DIBWidth,3);
if(bColor)
{
image.JPGColor =IJL_YCBCR;
image.JPGChannels =3;
image.JPGSubsampling =IJL_411;
}
else
{
image.JPGColor =IJL_G;
image.JPGChannels =1;
image.JPGSubsampling =IJL_NONE;
}
if (ijlWrite(&image,IJL_JFILE_WRITEWHOLEIMAGE)!=IJL_OK)return FALSE;
if(ijlFree(&image)!=IJL_OK)return FALSE;
return TRUE;
}参数分别为IplImage指针一个,存储路径,是否彩色,和压缩比。
我存的是彩色图片,压缩比为70,发现这样一个问题。
每百张图片会有几张存储失败,大小为0k的图片,一直不知道原因所在,请赐教!
PS:貌似图片像素越多发生概率越大,用的是opencv1.0和ijl 1.51.12.44版本,vs2005 c++编译平台。
{
if(pImg==NULL)return FALSE;
JPEG_CORE_PROPERTIES image;
ZeroMemory(&image, sizeof(JPEG_CORE_PROPERTIES));
if(ijlInit(&image)!=IJL_OK)return FALSE;
image.jquality = nQuality;
image.upsampling_reqd = image.cconversion_reqd = FALSE;
image.DIBWidth = pImg->width;
image.DIBHeight = pImg->height;
image.DIBBytes = (unsigned char * )pImg->imageData;
image.JPGFile = dir;
image.JPGBytes = NULL;
image.JPGSizeBytes = pImg->imageSize;
image.JPGWidth = pImg->width;
image.JPGHeight = pImg->height;
image.DIBColor =IJL_BGR;
image.DIBChannels =3;
image.DIBPadBytes =IJL_DIB_PAD_BYTES(image.DIBWidth,3);
if(bColor)
{
image.JPGColor =IJL_YCBCR;
image.JPGChannels =3;
image.JPGSubsampling =IJL_411;
}
else
{
image.JPGColor =IJL_G;
image.JPGChannels =1;
image.JPGSubsampling =IJL_NONE;
}
if (ijlWrite(&image,IJL_JFILE_WRITEWHOLEIMAGE)!=IJL_OK)return FALSE;
if(ijlFree(&image)!=IJL_OK)return FALSE;
return TRUE;
}参数分别为IplImage指针一个,存储路径,是否彩色,和压缩比。
我存的是彩色图片,压缩比为70,发现这样一个问题。
每百张图片会有几张存储失败,大小为0k的图片,一直不知道原因所在,请赐教!
PS:貌似图片像素越多发生概率越大,用的是opencv1.0和ijl 1.51.12.44版本,vs2005 c++编译平台。
解决方案 »
- 关于VC6.0与数据库一起使用的问题
- MFC下点击一个对话框产生一个文档——急求
- 已经加载到内存的文件,如何直接获取版本信息?
- 请教各位大侠,我写了一个获取网页中链接的方法,可是IHTMLArchorElementPtr接口指针总是调不成功,请各位高人不吝赐教,代码如下
- 关于CEdit的一个菜鸟问题
- ClistCtrl显示格式的问题
- 请教一个使用IMAPI来自动发送Email的问题
- 关于在加载的dll中再加载dll的问题,不好使。希望大家帮忙!
- 感谢大家对http://www.csdn.net/expert/topic/411/411441.shtm一贴的帮助,现决定追加分数,寻求解决。请大家帮忙,答者有分。另外,esoul请进来看看,有分数给你。
- Kontery也去孝高程了!
- xp sp2下利用原始套接字发送tcp数据包??
- 既然VirtualAlloc可以用来分配内存,那么C还要"堆"这个概念干嘛?
原因:因为ijl在保存图像时用到了一个或全局量,多个线程同时保存时会发生访问冲突,故写入失败,造成0k现象。
解决方法:加锁。