jzimagepng.h
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C头文件 代码 · 共 67 行
H
67 行
// JzImagePng.h: interface for the CJzImagePng class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_JZIMAGEPNG_H__96107E57_9843_4EF8_AFE1_B8F355F1AD61__INCLUDED_)
#define AFX_JZIMAGEPNG_H__96107E57_9843_4EF8_AFE1_B8F355F1AD61__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "JzImage.h"
extern "C" {
#include "../png/png.h"
}
class CJzImagePng: public CJzImage
{
public:
CJzImagePng();
~CJzImagePng();
CJzImagePng(PSCRINFO pscr):CJzImage(pscr){};
bool Decode(CxFile * hFile);
protected:
void ima_png_error(png_struct *png_ptr, char *message);
void expand2to4bpp(BYTE* prow);
void expand2to4bpp(BYTE* prow,int width);
static void user_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
CxFile* hFile = (CxFile*)png_ptr->io_ptr;
if (hFile->Read(data,1,length) != length) png_error(png_ptr, "Read Error");
}
static void user_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
CxFile* hFile = (CxFile*)png_ptr->io_ptr;
if (hFile->Write(data,1,length) != length) png_error(png_ptr, "Write Error");
}
static void user_flush_data(png_structp png_ptr)
{
CxFile* hFile = (CxFile*)png_ptr->io_ptr;
if (!hFile->Flush()) png_error(png_ptr, "Flush Error");
}
static void user_error_fn(png_structp png_ptr,png_const_charp error_msg)
{
strncpy((char*)png_ptr->error_ptr,error_msg,255);
longjmp(png_ptr->jmpbuf, 1);
}
int number_passes;
png_struct *png_ptr;
png_info *info_ptr;
BYTE *row_pointers;
RGBQUAD* pal;
int row_stride;
int pixel_depth;
private:
void deflate(DWORD wBpp);
void ivReadRow(unsigned char *, unsigned char *);
};
#endif // !defined(AFX_JZIMAGEPNG_H__96107E57_9843_4EF8_AFE1_B8F355F1AD61__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?