资源简介
基于JPEG2000的图像编码与解码c++版
代码片段和文件信息
#include “j2k-codec.h“
#ifdef __APPLE__
#define WORD unsigned short
#define DWORD unsigned int
#define LONG int
#define BI_RGB 0
#pragma pack(2)
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
#pragma pack()
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
#endif
TCHAR* J2K_GetErrStr(int code)
{
static TCHAR err_str[J2K_MAX_ERROR_LEN];
J2K_GetErrorStr(code err_str);
return err_str;
}
/*/////////////////////////////////////////////////////////////////////////////////////////
// BMP Saving
/////////////////////////////////////////////////////////////////////////////////////////*/
int SaveAsBMP(char *filename J2K_Image *img)
{
int w w2 h width = img->Width height = img->Height bpp prec tmp color_map_size; FILE *f;
unsigned char *row;
unsigned short *srow;
BITMAPFILEHEADER bmpHeader; BITMAPINFOHEADER bmpInfoHeader;
prec = img->Precision;
if(prec > 8) bpp = img->buffer_bpp / 2; else bpp = img->buffer_bpp;
if(bpp == 2) return 0; // not supported
color_map_size = (bpp == 1 ? 256*4 : 0);
bmpHeader.bfType = ‘MB‘;
bmpHeader.bfSize = 14 + 40 + color_map_size; //sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
bmpHeader.bfOffBits = bmpHeader.bfSize;
bmpHeader.bfSize += width * height * bpp;
bmpHeader.bfReserved1 = bmpHeader.bfReserved2 = 0;
bmpInfoHeader.biSize = 40;//sizeof(BITMAPINFOHEADER);
bmpInfoHeader.biWidth = width;
bmpInfoHeader.biHeight = height;
bmpInfoHeader.biPlanes = 1;
bmpInfoHeader.biBitCount = (bpp == 1) ? 8 : (bpp==3 ? 24 : 32);
bmpInfoHeader.biCompression = BI_RGB;
bmpInfoHeader.biSizeImage = 0;
bmpInfoHeader.biXPelsPerMeter = 0;
bmpInfoHeader.biYPelsPerMeter = 0;
bmpInfoHeader.biClrUsed = (bpp==1 ? 256 : 0);
bmpInfoHeader.biClrImportant = 0;
f = fopen(filename “wb“); if(!f) return 0;
// fwrite(&bmpHeader 14 1 f);
fwrite(&bmpHeader.bfType 2 1 f);
fwrite(&bmpHeader.bfSize 4 1 f);
fwrite(&bmpHeader.bfReserved1 2 1 f);
fwrite(&bmpHeader.bfReserved2 2 1 f);
fwrite(&bmpHeader.bfOffBits 4 1 f);
// fwrite(&bmpInfoHeader sizeof(BITMAPINFOHEADER) 1 f);
fwrite(&bmpInfoHeader.biSize 4 1 f);
fwrite(&bmpInfoHeader.biWidth 4 1 f);
fwrite(&bmpInfoHeader.biHeight 4 1 f);
fwrite(&bmpInfoHeader.biPlanes 2 1 f);
fwrite(&bmpInfoHeader.biBitCount 2 1 f);
fwrite(&bmpInfoHeader.biCompression 4 1 f);
fwrite(&bmpInfoHeader.biSizeImage 4 1 f);
fwrite(&bmpInfoHeader.biXPelsP
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-26 18:27 JPEG2000\
目录 0 2017-12-25 14:09 JPEG2000\Kakadu\
文件 51712 2017-08-28 02:05 JPEG2000\Kakadu\configure_environment.exe
文件 169472 2017-08-28 02:05 JPEG2000\Kakadu\kdu_buffered_compress.exe
文件 147456 2017-08-28 02:05 JPEG2000\Kakadu\kdu_buffered_expand.exe
文件 370688 2017-08-28 02:05 JPEG2000\Kakadu\kdu_compress.exe
文件 320000 2017-08-28 02:05 JPEG2000\Kakadu\kdu_expand.exe
文件 69632 2017-08-28 02:05 JPEG2000\Kakadu\kdu_jp2info.exe
文件 114688 2017-08-28 02:05 JPEG2000\Kakadu\kdu_maketlm.exe
文件 391680 2017-08-28 02:05 JPEG2000\Kakadu\kdu_merge.exe
文件 468992 2017-08-28 02:05 JPEG2000\Kakadu\kdu_render.exe
文件 313344 2017-08-28 02:05 JPEG2000\Kakadu\kdu_server.exe
文件 161280 2017-08-28 02:05 JPEG2000\Kakadu\kdu_server_admin.exe
文件 1145344 2017-08-28 02:05 JPEG2000\Kakadu\kdu_show.exe
文件 215290 2017-08-28 02:05 JPEG2000\Kakadu\kdu_show.pdf
文件 413696 2017-08-28 02:05 JPEG2000\Kakadu\kdu_v_compress.exe
文件 292352 2017-08-28 02:05 JPEG2000\Kakadu\kdu_v_expand.exe
文件 464384 2017-08-28 02:05 JPEG2000\Kakadu\kdu_vcom_fast.exe
文件 1078 2017-08-28 02:05 JPEG2000\Kakadu\kdu_winshow.ico
文件 54 2017-12-26 18:27 JPEG2000\README.txt
文件 178140 2017-08-28 00:49 JPEG2000\Usage_Examples.txt
目录 0 2017-12-21 09:13 JPEG2000\include\
文件 4993 2012-09-08 14:39 JPEG2000\include\J2K_Codec.bas
文件 5902 2012-09-08 14:39 JPEG2000\include\J2K_Codec.cs
文件 5991 2012-09-08 14:40 JPEG2000\include\J2K_Codec.vb
文件 4585 2012-09-08 15:12 JPEG2000\include\j2k-codec.cpp
文件 433 2011-05-04 22:00 JPEG2000\include\j2k-codec.def
文件 20828 2012-09-08 14:38 JPEG2000\include\j2k-codec.h
目录 0 2017-12-21 09:13 JPEG2000\lib\
文件 3131 2012-09-08 15:00 JPEG2000\lib\j2k-dynamic-16bit.exp
文件 5788 2012-09-08 15:00 JPEG2000\lib\j2k-dynamic-16bit.lib
............此处省略126个文件信息
评论
共有 条评论