📄 jpeg.h
字号:
// Jpeg.h: interface for the CJpeg class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_JPEG_H__CA094A18_11E7_4D59_9305_F7816F11E639__INCLUDED_)
#define AFX_JPEG_H__CA094A18_11E7_4D59_9305_F7816F11E639__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "WinPic.h"
#include "math.h"
//YCbCr色彩空间
typedef struct
{
BYTE Y;
BYTE Cb;
BYTE Cr;
}YCbCrCOLOR;
class CJpeg
{
public:
CJpeg();
virtual ~CJpeg();
public:
public:
//保存为JPEG文件
BOOL SaveJpeg(CString filepath);
//载入JPEG文件
BOOL LoadJpeg(CString filepath);
//打开JPEG文件对话框
BOOL OpenJpegFile(CString filepath);
private:
//写入为JPEG文件 filename:文件路径 bmpfile:RGB文件数据指针 width:图象宽度 height:图象高度
BOOL WriteJpegFile(CString filepath,CWinPic* bmpfile,long width,long height);
//读取JPEG文件
RGBCOLOR* ReadJpegFile(CString filepath,long width,long height);
//RGB色彩空间转换为YCbCr色彩空间
void RGBtoYCbCr(RGBCOLOR* rgbimagrdata,long width,long height);
//YCbCr色彩空间转换为RGB色彩空间
RGBCOLOR* YCbCrtoRGB(BYTE* Y,BYTE* Cr,BYTE* Cb);
//一维傅立叶变换
// void FFT(double* t,double* f,int r);
//正向离散余弦变换FDCT,只适合8*8的块变换
void FDCT(BYTE* data);
private:
//JPEG文件指针
CFile* m_JpegFile;
BYTE* m_Y; //存储YCbCr色彩空间的亮度数组空间
BYTE* m_Cb; //存储YCbCr色彩空间的色度数组空间
BYTE* m_Cr; //存储YCbCr色彩空间的色度数组空间
};
#endif // !defined(AFX_JPEG_H__CA094A18_11E7_4D59_9305_F7816F11E639__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -