⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 bmp图像压缩 用哈夫曼算法实现的哦 很常用的
💻 CPP
字号:
#include "Compress.h"
#include <cstdio>
#include <cstdlib>
#include <iostream.h>
#include <fstream.h>

void main()
{
	DCHufIndex=0; 
	ACHufIndex=1;       //初始化变量值
	
	int i, j, k=0;
	int judge;

	//unsigned char IZZ[64];    用来存放Huffman解码后的64字节的数据
	char filename[100];
	char data[65536];
	cout <<"输入要压缩的文件名";
	cin >> filename;

	outfile = fopen("Compressed.dat","wb");
	if(!outfile)
	{
		cout << "不能打开目的文件Compressed.dat \n ";
		exit(1);
	}

    //读入图像原始数据256*256,至initdata[256][256]中;
	FILE * infile;
	infile = fopen(filename,"rb");
	if (!infile)
	{
		cout << "不能打开待压缩文件:" << "filename" << '\n';
		exit (1);
	}
	fread(data,1,65536,infile);
	fclose(infile);
	for(i=0; i<256; i++)
		for(j=0; j<256; j++)
		{
			initdata[i][j]= data[k];
			k++;
		}	             
	
	//初始化Huffman表
	MakeHufTable();     
	
	//编码过程
	for(subi=0; subi<32; subi++)  
	{
		for(subj=0; subj<32; subj++)
		{
			Divifunction();  
			DctTrans();
			Quanfunction();
			Zscan();
			HufEncodeBlock();
		}
	}
	
	fclose(outfile);
	cout << "Done!\n" << "If you want to Decompress the image, please input '1',else input any other key. \n" ;	
	/*cin >> judge;
	
	//解码过程
	if(judge == 1)
	{
		for(subi=0; subi<32; subi++)
		{
			for(subj=0; subj<32; subj++)
			{
				//做Huffman解压, 一次解压64个数据, 并将其存入一维数组IZZ[64]中, IZZ[]在赋值到ZZ[64]中
				
				//Z逆变换....
				
			}
		}
	}
	*/	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -