谁知道怎么用IJG来保存位图为.jpg??

lyzcom 2004-07-13 06:17:10
我只会用IJG解码JPG为位图,但是不会将位图保存为.jpg,看了一下jpeglib.h的头文件,但没有找着门路。

哪位大哥有现成的示例的,帮帮小弟吧。
...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hamham 2004-07-13
  • 打赏
  • 举报
回复
intel jpeg库吗?我也想知道
huanyun 2004-07-13
  • 打赏
  • 举报
回复
IJL


int nRet = XIMGFAILURE;
BOOL bChange24=FALSE, bVertFlip = FALSE;
CXImgObj *pImg,xImg24;

pImg = &ImgObj;
if((ImgObj.GetBitCount() == 32 && !bColor) || ImgObj.GetBitCount() != 24)
{
xImg24.Create(24, ImgObj);
pImg = &xImg24;
bChange24 = TRUE;
}

if(pImg->IsTopDown())
{
pImg->VertFlipBits();
bVertFlip = TRUE;
}
JPEG_CORE_PROPERTIES image;
ZeroMemory(&image, sizeof(JPEG_CORE_PROPERTIES));
TRY
{
if (ijlInit(&image) != IJL_OK)
{
TRACE("Can't initialize Intel(R) JPEG library\n");
AfxThrowUserException();
}

image.jquality = nQuality;
image.upsampling_reqd = image.cconversion_reqd = FALSE;

image.DIBWidth = pImg->m_nWidth;
image.DIBHeight = pImg->m_nHeight;
image.DIBBytes = pImg->m_pBits;

image.JPGFile = const_cast<char*>(lpszPath);
image.JPGWidth = pImg->m_nWidth;
image.JPGHeight = pImg->m_nHeight;

switch (pImg->m_nBitCount)
{
case 24:
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;
}
break;

case 32:
image.DIBColor = IJL_RGBA_FPX;
image.DIBChannels = 4;
image.DIBPadBytes = IJL_DIB_PAD_BYTES(image.DIBWidth,4);
image.JPGColor = IJL_YCBCRA_FPX;
image.JPGChannels = 4;
image.JPGSubsampling = IJL_4114;
break;
default:
break;
}

if (image.DIBColor == IJL_RGBA_FPX)
{
ChangeRGB(image.DIBBytes,image.DIBWidth,image.DIBHeight);
}


if (ijlWrite(&image, IJL_JFILE_WRITEWHOLEIMAGE) != IJL_OK)
{
TRACE("Can't write image\n");
AfxThrowUserException();
}

if (ijlFree(&image) != IJL_OK)
{
TRACE("Can't free Intel(R) JPEG library\n");
}
nRet = XIMGSUCCESS;
}
CATCH_ALL(e)
{
ijlFree(&image);
AfxMessageBox("Error storing JPEG file");
}
END_CATCH_ALL
if(!bChange24 && bVertFlip) pImg->VertFlipBits();
return nRet;

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧