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

📄 csdn_文档中心_改变位图颜色深度.htm

📁 csdn10年中间经典帖子
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0052)http://www.csdn.net/develop/Read_Article.asp?id=4025 -->
<!--内容开始//--><HTML><HEAD><TITLE>CSDN_文档中心_改变位图颜色深度</TITLE>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK 
href="CSDN_文档中心_改变位图颜色深度.files/csdn.css" rel=stylesheet></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<DIV align=center>
<STYLE>.title0 {
	COLOR: #ffffff; FONT-FAMILY: arial; FONT-SIZE: 17px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.title2:link {
	COLOR: #000000; TEXT-DECORATION: none
}
A.title2:visited {
	COLOR: #000000; TEXT-DECORATION: none
}
A.title2:active {
	COLOR: #ff0000; TEXT-DECORATION: none
}
A.title2:hover {
	COLOR: #ff0000; TEXT-DECORATION: none
}
</STYLE>

<SCRIPT language=JavaScript>
<!--
function submitlog(sign)
{
	var types=document.alogon.type.options[document.alogon.type.selectedIndex].value;				
	if (document.alogon.name.value!="" && document.alogon.pass.value!="")
	{
		if (types!="1")
			document.alogon.action="http://www.csdn.net/member/logon.asp";
		else
			document.alogon.action="http://expert.csdn.net/member/logon.asp";
		if(sign)
			document.alogon.submit();
		//return true;
	}
	else
	{
		if (document.alogon.name.value=="")
			alert("请输入用户名!");
		if (document.alogon.pass.value=="")
			alert("请输入密码");
		return false;
	}
	return true;
}
function GetMyPass()
{
	if (document.alogon.name.value!="")
	{
		document.alogon.action="http://www.csdn.net/member/getpass.asp";
		document.alogon.submit();
	}
	else
	{
		alert("请在姓名输入框里输入用户名或注册EMAIL!");
	}	
}
// -->
</SCRIPT>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD bgColor=#004d99 height=25 width=20></TD>
    <TD bgColor=#004d99>&nbsp;&nbsp; <A 
      href="http://www.csdn.net/member/login.asp"><FONT color=#ffff33>登 
      录..</FONT></A> &nbsp;&nbsp; <A href="http://www.csdn.net/member/zc.asp" 
      target=_blank><FONT color=#ffff33>[注 册]</FONT></A> &nbsp;&nbsp; <A 
      href="http://www.csdn.net/member/login.asp"><FONT 
      color=#ffff33>忘记密码</FONT> </A>&nbsp;&nbsp; <A 
      href="http://www.csdn.net/member/logonout.asp"><FONT 
      color=#ffff33>注销登录</FONT> </A></TD>
    <TD align=right bgColor=#990000 width=20><IMG height=25 
      src="CSDN_文档中心_改变位图颜色深度.files/top_1.gif" width=20></TD>
    <FORM action=http://www.csdn.net/search_ok.asp method=post target=_blank>
    <TD align=right bgColor=#009999 width=250><FONT color=#ffffff><FONT 
      color=#ffffff><INPUT class=FormText_1 name=search size=15> <SELECT 
      class=FormText_1 name=type> <OPTION selected value=1>新闻标题</OPTION> 
        <OPTION value=2>软件名称</OPTION> <OPTION value=3>商品名称</OPTION> <OPTION 
        value=4>文档标题</OPTION> <OPTION value=6>职位名称</OPTION></SELECT> </FONT><INPUT class=td3 name=Submit type=submit value="搜 索">&nbsp; 
    </FONT></TD></FORM></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD align=middle height=70 width=150><IMG height=60 
      src="CSDN_文档中心_改变位图颜色深度.files/csdn.gif" width=120></TD>
    <TD align=middle width=470>
      <SCRIPT language=javascript>
	var rand = Math.random().toString(); 
	var ordval = parseInt(rand.substring(2,4)); 
	function Showad(width)
	{
		if(width=='468')
		{
				document.write("<a href='http://www.dearbook.com.cn/' target='_blank'><OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' WIDTH=468 HEIGHT=60><PARAM NAME=movie VALUE='/adv//468x60.swf'> <PARAM NAME=quality VALUE=high> <EMBED src='/adv//468x60.swf' quality=high border=0 WIDTH=468 HEIGHT=60 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'></EMBED></OBJECT></a>");
				return;
		}
		if(width=='120')
		{
				document.write("<a href='http://www.csdn.net/csdn/csdnClick.aspx?ad=Oracle-button1&adurl&adurl=http://www.oracle.com/global/cn/documentation/10g/index.html?content.html' target='_blank'><img src='/adv/develop/grid_computing_120x60_text1.gif' width=120 HEIGHT=60 border=0></a>");
				return;
		}
		return;
	}
Showad('468')</SCRIPT>
    </TD>
    <TD align=middle width=150>
      <SCRIPT>Showad('120')</SCRIPT>
    </TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD align=middle bgColor=#000000 colSpan=2 height=1 width=770></TD></TR>
  <TR>
    <TD align=middle bgColor=#004d99 height=28 width=150><FONT 
      class=title0>csdn.net</FONT></TD>
    <TD align=middle width=620>
      <SCRIPT src="CSDN_文档中心_改变位图颜色深度.files/navigation1.js"></SCRIPT>
    </TD></TR>
  <TR>
    <TD align=middle bgColor=#000000 colSpan=2 height=1 
  width=770></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
  <TBODY>
  <TR>
    <TD bgColor=#f3f9fc height=23 width=10></TD>
    <TD bgColor=#f3f9fc>
      <MARQUEE onmouseout=this.start() onmouseover=this.stop() scrollAmount=5 
      scrollDelay=80>
      <SCRIPT src="CSDN_文档中心_改变位图颜色深度.files/marquee.htm"></SCRIPT>
      </MARQUEE></TD>
    <TD align=right bgColor=#f3f9fc width=101>
      <SCRIPT>document.write("<img src=http://count.csdn.net/count/pageview1.asp?columnid=4&itemid=11 border=0 width=0 height=0>");</SCRIPT>
      <B>
      <SCRIPT language=JavaScript>
			<!--
			document.ns = navigator.appName == "Netscape"
			tmpDate = new Date();
			date = tmpDate.getDate();
			month= tmpDate.getMonth() + 1 ; 
			if(document.ns)
			{
				year1=tmpDate.getYear()
				year= year1.toString().substr(1,2);
			}
			else
				year= tmpDate.getYear();
			
			document.write(year);
			document.write(".");
			document.write(month);
			document.write(".");
			document.write(date);
			// -->
			</SCRIPT>
      </B>&nbsp;&nbsp;</TD></TR>
  <TR bgColor=#999999>
    <TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
      <SCRIPT src="CSDN_文档中心_改变位图颜色深度.files/microsoft.js"></SCRIPT>
    </TD>
    <TD align=middle width=620>
      <TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
        <TBODY>
        <TR bgColor=#ffffff>
          <TD align=middle height=10 width=50></TD>
          <TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A 
            href="http://www.csdn.net/develop/">文档中心</A> - <FONT 
            color=#003399>Visual C++</FONT>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399 height=10><FONT 
            color=#ffffff>标题</FONT></TD>
          <TD><B>&nbsp;&nbsp;&nbsp;&nbsp;改变位图颜色深度</B>&nbsp;&nbsp;&nbsp;&nbsp;rjren(转贴) 
          </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
          <TD width=500>&nbsp;&nbsp;&nbsp;&nbsp;改变位图颜色深度</TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399 height=10><FONT 
            color=#ffffff>出处</FONT></TD>
          <TD height=10>&nbsp;&nbsp;&nbsp;&nbsp;<A 
            href="http://codeguru.earthweb.com/bitmap/ChangingColorDepth.html">http://codeguru.earthweb.com/bitmap/ChangingColorDepth.html</A></TD></TR>
        <TR>
          <TD align=middle height=10></TD>
          <TD height=10></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
      <TABLE border=0 width=600>
        <TBODY>
        <TR>
          <TD align=left><BR>
            <CENTER>
            <H3><FONT color=#a0a099>Changing Bitmaps Color Depth 
            </FONT></H3></CENTER>
            <HR>
<!-- Author and contact details -->This article was contributed by 
            <A href="mailto:admin@gerdesser.de">Gerd Esser, Germany</A>. <!-- Sample image - gif or jpg --><!-- For which environment is this code specific??? -->
            <P><U>Environment:</U> MSVC 6.0 
            <P><!-- The 'p' starts a paragraph of normal text -->The basic 
            problem of this code was to decrease a color depth of great bitmaps 
            (like 8000 x 8000 pixels) to - for example - 4 bits per pixel and 
            solving nearly (! see below) the original color palette. The first 
            attempt was to use the method as shown in DDBtoDIB. But such great 
            bitmaps produce an error: They do nothing sencefull in functions 
            like GetDIBits. So I handle the bitmap in bands of smaller bitmap 
            data and make direct file reading/saving operations of the bitmaps. 
            <P>Because of the internal mapping of the color palette to the 
            system palette I got some strange results. Also, by realizing the 
            whole number of really used colors, I ve got another problem with 
            the previous banding of the bitmap, which show me only a small part 
            of the overall used colors. This was the second problem. So I create 
            a color palette by counting and adding the colors of each band to a 
            global color palette of the bitmap. 
            <P>A small problem still remains: By mapping the source bitmap into 
            memory, the color palette cannot be solved exactly. If the color 
            palette cannot be mapped into the system palette, the result color 
            palette may differ by a view percent. But I didn't spend more time 
            to this fact because the present solution was sufficient for me. 
            <P>The result is a class BitmapLib with two (static) methods, 
            ChangeColorDepth() and GetUsedColors(). <PRE>BOOL CBitmapLib::ChangeColorDepth(CString const&amp; stSrcBitmapFile,
                                  CString const&amp; stDstBitmapFile,
                                  WORD const wDstBitCount,
                                  CProgressCtrl* pProgressCtrl=NULL);
</PRE>ChangeColorDepth() changes a color depth of a file based 
            bitmap and saves the result into a destination file. The operation 
            is done by increasing or decreasing the bits per pixel through the 
            whole range from 1 to 32 (thus converting also from device dependent 
            into device independent or the way back). The progress control is 
            only used if nescessary and showing the work progress (great bitmaps 
            last a few seconds ...) 
            <P><PRE>int CBitmapLib::GetUsedColors(CString const &amp; stSrcBitmapFile,
                              RGBQUAD *       pColorTable,
                              WORD const      wMaxColorTableSize,
                              CProgressCtrl *pProgressCtrl = NULL);
int CBitmapLib::GetUsedColors(BITMAPINFO const * pBmi,
                              BYTE const *       pBits,
                              UINT const         nStartScanLine,
                              UINT const         nScanLines,
                              RGBQUAD *          pColorTable,
                              WORD const         wMaxColorTableSize,
                              WORD &amp;             wUsedColors );
</PRE>A byproduct of the operation ChangeColorDepth() is the method 
            GetUsedColors(), which count the the really used colors and produces 
            a color table of the used colors. 
            <P>Both methods abort its operation, if the destination color depth 
            is not sufficient enough for the number of used colors in the source 
            bitmap. 
            <H3>Downloads</H3><A 
            href="http://codeguru.earthweb.com/bitmap/ChangingColorDepth_src.zip">Download 
            source - 6 Kb</A> 
            <H3>History</H3>Date Posted: February 6, 2001<BR><!-- Only use the following if the article is updated --><!-- Date Last Updated:  [today's date in the format month day, year] --><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>对该文的评论</FONT></TD>
    <TD align=middle>
      <SCRIPT src="CSDN_文档中心_改变位图颜色深度.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你没有登陆,无法发表评论。 请先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=4025">登陆</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A 
      href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A 
      href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 src="CSDN_文档中心_改变位图颜色深度.files/biaoshi.gif" 
    width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>

⌨️ 快捷键说明

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