急求JPEG压缩率的问题!! 知道的进来看看

fangxiao_jun 2008-09-09 01:29:23
请问哪位能详细告诉一下JPEG压缩率.在VC 中BMP转JPEG时,压缩率不同得到的JPEG质量不同.也表现为得到的JPEG文件大小不同.
如使用CXIMAGE类中的SetJpegQuality(X)可设定格式转化后JPEG的质量.我想问的就是:当控制质量X为0 到100之间的值时,到底是怎么使转化后图像的质量不一样的呢.就是说1.控制质量参数是怎么起到作用的.2.在哪个变化环节上起的作用!
...全文
791 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yypony 2009-09-30
  • 打赏
  • 举报
回复
多谢6楼
dawn1125 2008-09-19
  • 打赏
  • 举报
回复
谢谢6楼,看了很受用
binsir543 2008-09-11
  • 打赏
  • 举报
回复
# wohaoku
# 该用户很懒,没有设置昵称
# 等级:
# 可用分等级:短工
# 总技术分:0
# 总技术分排名:3000000
fangxiao_jun 2008-09-11
  • 打赏
  • 举报
回复
我想知道的是压缩率的问题,如PHOTOSHOP中bmp转jpeg时,有个转化的质量的选择.0-12之间. 它是怎么实现对图像质量的调控的了,是通过改变量化表吗? 用UltraEdit打开发现许多张图片的量化表都不一样.
dtor 2008-09-10
  • 打赏
  • 举报
回复
帮顶
rover___ 2008-09-10
  • 打赏
  • 举报
回复
JPEG使用DCT对象素块的Y、U、V分量进行编码,编码抛弃低频可以抓住象素数据的主要部分(变换手段实现数据压缩);象素块的选择上,Y、U、V进行了不同比例的象素选取,U、V分量象素相近的采用相同数据近似,象素相近的尺度也实现了压缩(比如连续的4个、8个、更多点用同样的U、V值,这样的原理是人眼睛对U、V差异值感觉不明显);最后采用HUFFMAN编码进一步实现压缩。
landiya 2008-09-10
  • 打赏
  • 举报
回复
主要是量化步长的不同,简单的解释就是一个像素的灰度和色彩用16bit还是8bit描述的不同
wohaoku 2008-09-10
  • 打赏
  • 举报
回复
void CMyListCtrl::OnCustomDraw(NMHDR *pHdr, LRESULT *pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pHdr;

switch(lplvcd->nmcd.dwDrawStage)
{

case CDDS_ITEMPREPAINT| CDDS_SUBITEM:
{
int iColumn = lplvcd->iSubItem;
int iRow = lplvcd->nmcd.dwItemSpec;
if(iRow % 2 && iColumn ==2) //奇数行,第二列者变色 无法实现
{
lplvcd->clrText = RGB(128, 128, 0);
lplvcd->clrTextBk= RGB(245, 210, 10);
}
*pResult = CDRF_DODEFAULT;
break;
}
}
}
sunyim 2008-09-09
  • 打赏
  • 举报
回复

typedef struct tagCxImageInfo {
DWORD dwEffWidth; //DWORD aligned scan line width
BYTE* pImage; //THE IMAGE BITS
void* pGhost; //if this is a ghost, pGhost point to the body
DWORD dwType; //original image format
char szLastError[256]; //debugging
long nProgress; //monitor
long nEscape; //escape
long nBkgndIndex; //used for GIF, PNG, MNG
RGBQUAD nBkgndColor; //used for RGB transparency
BYTE nQuality; //used for JPEG
long nFrame; //used for TIF, GIF, MNG : actual frame
long nNumFrames; //used for TIF, GIF, MNG : total number of frames
DWORD dwFrameDelay; //used for GIF, MNG
long xDPI; //horizontal resolution
long yDPI; //vertical resolution
RECT rSelectionBox; //bounding rectangle
BYTE nAlphaMax; //max opacity (fade)
BYTE bAlphaPaletteEnabled; //true if alpha values in the palette are enabled.
BYTE bEnabled; //enables the painting functions
long xOffset;
long yOffset;
} CXIMAGEINFO;

CXIMAGEINFO info; //extended information

void SetJpegQuality(BYTE q) {info.nQuality = q;}

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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