资源简介
24位图转化为8位图的C++代码,很好用的
代码片段和文件信息
#include “StdAfx.h“
#include “BMPIMAGE.h“
#include
#include
BMPIMAGE::BMPIMAGE(void)
{
}
BMPIMAGE::~BMPIMAGE(void)
{
}
//计算平方差的函数
int PFC(int color1 int color2)
{
int xyz;
x = (color1 & 0xf) - (color2 & 0xf);
y = ((color1>>4) & 0xf) - ((color2>>4) & 0xf);
z = ((color1>>8) & 0xf) - ((color2>>8) & 0xf);
return (x*x + y*y + z*z);
};
//直接插入排序
int Sort1(int *src int *attach int n)
{
int cur cur1;
int ijk=0;
for (i = 1; i < n; i++)
{
cur = src[i];
cur1 = attach[i];
for (j = i - 1; j >= 0; j--)
{
if (cur > src[j])
{
src[j+1] = src[j];
attach[j+1] = attach[j];
}
else
break;
}
src[j+1] = cur;
attach[j+1] = cur1;
}
return 0;
}
//快速排序
int Sort2(int *src int *attach int n)
{
if (n <= 12)
return Sort1(src attach n);
int low = 1 high = n - 1;
int tmp;
while (low <= high)
{
while (src[low] >= src[0])
{
if (++low > n - 1)
break;
}
while (src[high] < src[0])
{
if (--high < 1)
break;
}
if (low > high)
break;
{
tmp = src[low];
src[low] = src[high];
src[high] = tmp;
tmp = attach[low];
attach[low] = attach[high];
attach[high] = tmp;
}
low++;
high--;
}
{
tmp = src[low - 1];
src[low - 1] = src[0];
src[0] = tmp;
tmp = attach[low - 1];
attach[low - 1] = attach[0];
attach[0] = tmp;
}
if (low > 1)
Sort2(src attach low - 1);
if (low < n)
Sort2(&src[low] &attach[low] n - low);
return 0;
}
//将24bit的象素颜色数据转换为256色图的图像数据(即索引值)
int Transfer(WORD *color24bit int len BYTE *Index RGBMixPlate *mainColor)
{
int usedTimes[4096] = {0};
int miniColor[4096];
for (int i = 0; i < 4096; i++)
miniColor[i] = i;
int i = 0;
for (i = 0; i < len; i++)
{
assert(color24bit[i] < 4096);
usedTimes[color24bit[i]]++;
}
int numberOfColors = 0;
for (i = 0; i < 4096; i++)
{
if (usedTimes[i] > 0)
numberOfColors++;
}
//对usedTimes进行排序,排序过程中minColor数组(保存了颜色值)也作与useTimes
//数组相似的交换
Sort2(usedTimes miniColor 4096);
//usedTimes数组中是各颜色使用频率,从高到低排列,显然第numberOfColor个之后的都为0
//miniColor数组中是相应的颜色数据
//将前256个颜色数据保存到256色位图的调色盘中
for (i = 0; i < 256; i++)
{
mainColor[i].rgbBlue = (BYTE)((miniColor[i]>>8)<<4);
mainColor[i].rgbGreen = (BYTE)(((miniColor[i]>
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-07 17:08 TestImage24depthto8\
目录 0 2015-09-07 15:17 TestImage24depthto8\Debug\
文件 35328 2015-09-07 15:24 TestImage24depthto8\Debug\TestImage24depthto8.exe
文件 363084 2015-09-07 15:24 TestImage24depthto8\Debug\TestImage24depthto8.ilk
文件 510976 2015-09-07 15:24 TestImage24depthto8\Debug\TestImage24depthto8.pdb
目录 0 2015-09-07 15:25 TestImage24depthto8\TestImage24depthto8\
目录 0 2015-09-07 15:21 TestImage24depthto8\TestImage24depthto8\11\
文件 2359350 2015-09-07 15:21 TestImage24depthto8\TestImage24depthto8\11\Desert24.bmp
文件 4399 2015-09-07 15:09 TestImage24depthto8\TestImage24depthto8\BMPIMAGE.cpp
文件 3929 2015-09-07 15:09 TestImage24depthto8\TestImage24depthto8\BMPIMAGE.h
目录 0 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\
文件 11787 2015-09-07 15:09 TestImage24depthto8\TestImage24depthto8\Debug\BMPIMAGE.obj
文件 4892 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\CL.read.1.tlog
文件 2216 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\CL.write.1.tlog
文件 406 2015-09-07 15:04 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8.exe.em
文件 472 2015-09-07 15:04 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8.exe.em
文件 381 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8.exe.intermediate.manifest
文件 71 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8.lastbuildstate
文件 3259 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8.log
文件 15076 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8.obj
文件 1179648 2015-09-07 15:04 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8.pch
文件 228 2015-09-07 15:04 TestImage24depthto8\TestImage24depthto8\Debug\TestImage24depthto8_manifest.rc
文件 2528 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\cl.command.1.tlog
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
文件 2 2015-09-07 15:24 TestImage24depthto8\TestImage24depthto8\Debug\li
............此处省略30个文件信息
评论
共有 条评论