解读ico文件
- 格式:doc
- 大小:77.50 KB
- 文档页数:8
ico格式二进制值ICO格式是一种常用的图标文件格式,它通常用于Windows操作系统中的图标显示。
ICO文件是由一系列图像资源组成的容器,每个图像资源可以包含多个图标尺寸和颜色深度的变体。
ICO文件的二进制值由多个部分组成,下面我将从多个角度解释ICO格式的二进制值。
1. 文件头部分,ICO文件的二进制值的开始部分是文件头,它包含了一些基本的信息。
文件头的长度为6个字节,其中包括两个字节的魔数"00 00",表示这是一个ICO文件;接下来的两个字节表示图标数量,通常为1;最后的两个字节表示ICO文件的类型,一般为1。
2. 图像资源目录,ICO文件的二进制值的下一个部分是图像资源目录,它描述了ICO文件中包含的每个图像资源的信息。
每个图像资源目录项的长度为16个字节,其中包括4个字节的宽度、4个字节的高度、1个字节的颜色数(0表示多彩图标),1个字节的保留值(一般为0),2个字节的颜色平面数(一般为0或1),2个字节的位深度(一般为32),4个字节的图像数据大小和4个字节的图像数据偏移量。
3. 图像数据,ICO文件的二进制值的最后部分是图像数据,它包含了实际的图像像素信息。
每个图像资源的图像数据可以是位图(BMP)格式或PNG格式,具体格式取决于ICO文件中的图像资源。
图像数据的大小和偏移量在图像资源目录中指定。
总结起来,ICO格式的二进制值由文件头、图像资源目录和图像数据组成。
文件头部分包含了基本的ICO文件信息,图像资源目录描述了ICO文件中每个图像资源的属性,而图像数据则包含了实际的图像像素信息。
这些部分的组合构成了完整的ICO文件。
希望以上回答能够满足你的要求,如果还有其他问题,请随时提出。
ico 标准-回复ICO(Initial Coin Offering,首次代币发行)是指一种去中心化平台或项目通过发行数字代币或加密货币,以筹集资金和融资的方式。
在这篇文章中,我们将一步一步回答有关ICO的一些常见问题和话题。
第一部分:什么是ICO?在这一部分,我们将解释ICO的定义和基本概念。
首先,我们会解释ICO是什么以及它的起源。
接下来,我们会讨论ICO的优点和缺点,以及它与传统融资方式的区别。
最后,我们会提及ICO的发展趋势和未来前景。
第二部分:ICO的运作方式在这一部分,我们将解释ICO的运作方式。
首先,我们会详细介绍ICO 的生命周期,从项目筹备到代币发行和交易。
然后,我们会探讨ICO的参与者,包括项目方、投资者和交易所。
最后,我们会讨论ICO的法律和监管环境,以及项目方和投资者需要遵守的合规要求。
第三部分:ICO的案例研究在这一部分,我们将通过几个典型的ICO案例来加深我们对ICO的理解。
我们会选择一些成功的ICO案例,分析它们的成功因素和策略。
同时,我们也会选取一些失败的ICO案例,分析它们的失败原因和教训。
通过这些案例研究,我们可以学到如何评估一个ICO项目的潜力和风险。
第四部分:ICO投资指南在这一部分,我们将提供一些关于ICO投资的指导建议。
首先,我们会讨论如何评估一个ICO项目的潜力和可行性,包括团队背景、商业模式和市场需求。
接下来,我们会讲解如何评估一个ICO代币的价值和前景,包括代币经济模型和市场竞争力。
最后,我们会提供一些建议,帮助投资者管理和分散ICO投资风险。
第五部分:ICO的风险和挑战在这一部分,我们将讨论ICO的风险和挑战。
首先,我们会提到ICO市场的过度炒作和泡沫风险。
接下来,我们会讲解ICO项目的诈骗和失败风险,以及投资者的安全和隐私问题。
最后,我们会讨论ICO产生的监管和合规挑战,以及政府机构和行业协会的最新举措。
第六部分:ICO与区块链发展在这一部分,我们将探讨ICO与区块链发展之间的关系。
ico是什么?
ico有两种意思,一种是图标文件的后缀名,另外一种是区块链的专业术语。
通常来说区块链的ICO是指加密的数字货币和区块链项目,简单来讲就是发行代币筹集资金,这种代币名称也叫做ICO。
ico为什么被禁止?
之所以ico被禁止是因为区块链从实质上来讲还是一种泡沫交易市场,破裂之后会让区块链的市值急速下降,会让投资者受到巨大的影响,泡沫增长无疑是让更多的人明白区块链就是一场金钱欺诈。
ico有意义吗?
ico还是有意义的,这个项目在区块链中可以让交易获得流动性发放令牌后,这种代币疯狂的上涨,能给更多的人获得潜在利益,这在区块链中是有意义的。
区块链投资风险大吗?
区块链的投资风险也是比较大的,投资风险并不亚于股票,另外股票是受到法律保护的,但区块链在我国并不会受到法律的深层保护,如果一旦出现遭遇盗刷数字货币的情况,我国法律是无法有效追回资金的,另外,国内有很多区块链项目都是资金盘,这无疑是一场诈骗行为,更多的投资者会受到影响。
不管区块链是否在我国受到法律保护,投资者千万不要盲目的进行交易。
中国ico的案例一、背景介绍ICO(Initial Coin Offering)即首次代币发行,是一种通过发售加密代币来筹集资金的方式。
近年来,随着区块链技术的发展,越来越多的项目选择通过ICO来筹集资金并实现项目的发展。
然而,由于监管的不完善和市场的混乱,一些ICO项目存在违法违规的问题,导致投资者遭受损失。
本文旨在通过对中国ICO案例的分析,探讨ICO的发展现状、存在的问题以及未来的发展趋势。
二、案例选择标准本文选取的案例需要符合以下标准:1.案例具有代表性,能够反映中国ICO市场的现状和特点;2.案例具有争议性,涉及到的问题具有普遍性和警示意义;3.案例具有可分析性,能够为读者提供深入的思考和分析。
三、具体案例1.“XX币”项目:该项目的宣传口号为“让你的资产倍增”,但实际上存在虚假宣传、夸大收益等问题。
投资者在购买该代币后,发现其价格不断下跌,最终导致投资者亏损严重。
2.“YY币”项目:该项目以“区块链+公益”为噱头,吸引投资者。
但实际上,该项目的白皮书存在虚假信息,项目方私自挪用筹集的资金,最终导致投资者遭受巨大损失。
3.“ZZ币”项目:该项目宣称与某知名企业合作,但实际上双方并无实质性合作。
项目方在代币发行后立即抛售,导致代币价格暴跌,投资者损失惨重。
四、案例分析1.虚假宣传和欺诈行为:一些ICO项目为了吸引投资者,采取虚假宣传和欺诈行为,如夸大项目收益、隐瞒项目风险等。
这些行为严重侵害了投资者的利益,破坏了市场的公平和公正。
2.信息披露不透明:许多ICO项目在信息披露方面存在不透明的问题,如隐瞒项目关键信息、缺乏第三方审计等。
这使得投资者难以了解项目的真实情况,增加了投资风险。
3.监管缺失:目前中国的ICO市场存在监管缺失的问题。
一些项目方在筹集资金后私自挪用资金、抛售代币等行为缺乏有效的监管措施,导致投资者遭受损失。
同时,监管部门对ICO的监管政策也存在不确定性,增加了市场的风险。
新式ico格式解析microsoft learn摘要:1.介绍ICO文件的背景和用途2.分析新式ICO格式的重要性3.详细解析新式ICO格式的特点和优势4.如何在Microsoft Learn学习新式ICO格式5.实际应用案例分享正文:ICO文件是一种图像文件格式,主要用于描述图标。
随着技术的发展,新式ICO格式应运而生,它带来了更多优势和实用性。
在本文中,我们将探讨新式ICO格式的特点、优势以及在Microsoft Learn学习的相关知识。
一、ICO文件的背景和用途ICO文件起源于Windows操作系统,用于存储单个或多个图标。
这些图标可以用于应用程序、网站等各种场景。
ICO文件支持多种颜色和分辨率,因此具有较高的灵活性和通用性。
二、新式ICO格式的重要性新式ICO格式(又称Windows 10图标格式)是为了适应现代操作系统和应用程序的需求而诞生的。
与传统ICO格式相比,新式ICO格式具有以下优势:1.高分辨率支持:新式ICO格式支持更高分辨率的图像,从而使图标在各种设备上都能保持清晰和美观。
2.更多的颜色和透明度:新式ICO格式支持更多颜色和透明度设置,使图标更加丰富和生动。
3.动画效果:新式ICO格式支持动画效果,使得图标更具互动性。
4.体积较小:新式ICO格式在保持高质量图像的同时,文件体积相对较小,有利于网络传输和存储。
三、新式ICO格式的特点和优势新式ICO格式采用了现代化的设计理念,不仅支持更高的分辨率和颜色,还引入了动画效果。
这使得新式ICO格式在视觉效果上更加出色,提升了用户体验。
此外,新式ICO格式还具有体积小、易于传输和存储等特点。
四、如何在Microsoft Learn学习新式ICO格式Microsoft Learn是一个免费的学习平台,提供了丰富的教程和资源。
在这里,你可以找到关于新式ICO格式的相关课程,包括基础知识、设计与制作技巧等。
以下是学习新式ICO格式的一些建议:1.注册并登录Microsoft Learn账户。
新式ico格式解析microsoft learn -回复Today, we are going to learn about the new ICO format developed by Microsoft. ICO, short for Initial Coin Offering, has become a popular fundraising method for blockchain projects. However, the traditional ICO model has been criticized for its lack of regulations and potential for fraudulent activities. In an effort to address these issues, Microsoft has introduced a new ICO format that aims to provide a more secure and transparent fundraising process. In this article, we will analyze and break down this new format, step by step.Step 1: Introduction to the New ICO FormatThe new ICO format developed by Microsoft is designed to enhance investor protection and promote transparency within the blockchain industry. It introduces several improvements compared to the traditional ICO model. Key features of the new format include stricter regulations, smart contract integration, and improved token distribution mechanisms.Step 2: Stricter RegulationsOne of the major criticisms of the traditional ICO model is the lack of regulations and accountability. Many projects in the past have raised significant amounts of funds without delivering on their promises, leading to investor losses. To address this issue, the new ICO format incorporates stricter regulations to ensure compliance with legal requirements and protect investor interests.Microsoft has partnered with regulatory authorities and industry experts to establish a set of guidelines that ICO projects must adhere to. These guidelines cover aspects such as project transparency, financial disclosure, and legal compliance. By enforcing these regulations, the new ICO format aims to weed out fraudulent projects and provide investors with a higher level of confidence.Step 3: Smart Contract IntegrationSmart contracts are self-executing contracts with the terms of the agreement directly written into lines of code. They automatically execute and enforce the agreed upon terms without the need for intermediaries. The new ICO format integrates smart contracts into the fundraising process to provide a more transparent and efficientmechanism.Through the use of smart contracts, investors can have full visibility into the terms and conditions of the ICO project. These contracts are publicly available on the blockchain, allowing investors to verify the authenticity of the project and its commitments. Additionally, smart contracts automate the distribution of tokens, reducing the administrative burden on project teams and ensuring a fair and timely delivery of tokens to investors.Step 4: Improved Token Distribution MechanismsToken distribution is a critical aspect of any ICO project. In the traditional model, token sales often suffer from issues such as oversubscription, uneven distribution, and delays in token release. These issues can lead to a loss of trust and credibility for the project.The new ICO format tackles these problems by introducing improved token distribution mechanisms. Through smart contracts, project teams can set clear and transparent rules around token distribution. This includes predefined caps on the number oftokens available, mechanisms to prevent oversubscription, and scheduled release of tokens in a way that aligns with project milestones.Step 5: Enhanced Investor ProtectionInvestor protection is at the heart of the new ICO format developed by Microsoft. The introduction of stricter regulations, smart contract integration, and improved token distribution mechanisms all contribute to creating a more secure and transparent environment for investors.By adhering to regulatory guidelines, projects are held accountable for their actions and have a legal obligation to meet their commitments. The use of smart contracts ensures transparency, as all transactions and terms are recorded on the blockchain, eliminating the possibility of manipulation or fraud. The improved token distribution mechanisms provide equal opportunities for all investors and reduce the risk of market manipulation.In conclusion, Microsoft's new ICO format aims to address the challenges and concerns associated with traditional ICO models. Byintroducing stricter regulations, smart contract integration, and improved token distribution mechanisms, this format enhances investor protection and promotes transparency within the blockchain industry. As the industry continues to evolve, it is important for projects to adopt responsible and secure fundraising methods, and the new ICO format developed by Microsoft provides a strong foundation for achieving these goals.。
ICO发行的具体实施步骤1. 确定发行目标和筹集资金的用途在进行ICO发行之前,首先需要明确发行的目标和筹集资金的用途。
这包括确定发行的数字代币的类型、数量和价格,以及筹集到的资金将用于支持哪些项目或业务。
2. 制定项目白皮书项目白皮书是ICO发行的重要文档,用于向潜在投资者介绍项目的背景、目标和规划。
白皮书应当包含以下内容:•项目的背景和问题陈述•项目的解决方案和愿景•项目的商业模式和收益预测•项目的团队成员和顾问•发行的代币类型、数量和价格•代币分配和销售计划•资金用途和财务预测3. 安排代币发行和销售计划确定代币发行和销售计划,包括发行时间、发行数量、发行价格和销售渠道等。
还需考虑代币的流通性和交易平台的选择,以确保代币可以在合适的时间和方式进行交易。
4. 进行合规审查和法律事务处理在进行ICO发行之前,需要进行合规审查和法律事务处理,以确保发行过程的合法合规。
包括但不限于以下内容:•遵守当地金融监管机构的规定•审查代币是否符合数字资产的定义•确定发行是否需要进行证券登记•处理知识产权保护和法律风险5. 建立代币发行平台和智能合约搭建一个安全可靠的代币发行平台,并编写智能合约来确保代币的正确发行和交易。
智能合约可以自动执行代币发行和销售的相关规则和条件,提高发行过程的透明度和安全性。
6. 宣传和推广进行代币发行之前,需要进行充分的宣传和推广工作,以吸引潜在投资者的关注。
这包括通过社交媒体、论坛和会议等渠道宣传项目的优势和发展前景,吸引投资者参与代币发行。
7. 发行代币并进行销售按照设计好的代币发行和销售计划,将代币发行出去,并通过销售渠道进行销售。
销售过程中需确保资金的安全,避免出现黑客攻击或资金丢失等风险。
8. 代币上线交易所代币成功发行后,需要将代币上线到交易所,并与其他数字代币进行交易。
选择合适的交易所是至关重要的,因为交易所的声誉和安全性对代币的流通和价值都有很大的影响。
9. 进行社区建设和治理一旦代币上线交易所,并且开始在市场上流通,就需要进行社区建设和治理。
ICO文件格式介绍ico是Icon file的缩写,是Windows的图标文件格式的一种,可以存储单个图案、多尺寸、多色板的图标文件。
图标是具有明确指代含义的计算机图形。
其中桌面图标是软件标识,界面中的图标是功能标识。
图标有一套标准的大小和属性格式,且通常是小尺寸的。
每个图标都含有多张相同显示内容的图片,每一张图片具有不同的尺寸和发色数。
一个图标就是一套相似的图片,每一张图片有不同的格式。
从这一点上说图标是三维的。
图标还有另一个特性:它含有透明区域,在透明区域内可以透出图标下的桌面背景。
在结构上图标其实和麦当劳的巨无霸汉堡差不多。
一个图标实际上是多张不同格式的图片的集合体,并且还包含了一定的透明区域。
因为计算机操作系统和显示设备的多样性,导致了图标的大小需要有多种格式。
操作系统在显示一个图标时,会按照一定的标准选择图标中最适合当前显示环境和状态的图像。
如果你用的是Windows98操作系统,显示环境是800×600分辨率,32位色深,你在桌面上看到的每个图标的图像格式就是256色32×32象素大小。
如果在相同的显示环境下,Windows XP操作系统中,这些图标的图像格式就是:真彩色(32位色深)、32×32象素大小。
下面就是Windows各个操作系统中的标准图标格式:(单位:大小象素—颜色) Windows 98 SE/ME/2000 48 x 48 –256 32 x 32 –256 16 x 16 –256 48 x 48 –16 32 x 32 –16 16 x 16 –16Windows XP48 x 48 –32bit 32 x 32 –32bit 24 x 24 –32bit * 16 x 16 –32bit (32位真彩色支持多通道透明。
)48 x 48 –256 32 x 32 –256 24 x 24 –256 * 16 x 16 –25648 x 48 –16 32 x 32 –16 24 x 24 –16 * 16 x 16 –16* 这种格式在XP图标中并不是必须的。
ico规则下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help yousolve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts,other materials and so on, want to know different data formats and writing methods, please pay attention!虚拟货币市场一直是投资者和创业者们争议最多的话题之一。
PHP获取⽹站图标(favicon.ico)⽂件 有的⽹站源码中加⼊了这⼏⾏代码:1<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/> 或者是1<link rel=" icon" href="/favicon.ico" type="image/x-icon"/> 这样可以指定图标位置存放。
但现在的浏览器⼤多⽀持⾃动获取⽹站根⽬录下的.ico⽂件,所以源码中看不到那⼏⾏代码。
可⾏的⽅法:1//得到每⼀个url,获取其中的icon2$url = $matches[1][$i];3$contents = @file_get_contents($url);4preg_match('/<link rel=".*?icon".*?href="(.*?)".*?>/', $contents,$icon);5if(!empty($icon)){6// print_r($icon[1]);7echo "<br/>";8$array = @get_headers($icon[1],1);9if(preg_match('/200/',$array[0])){10// echo "<pre/>";11print_r($icon[1]);12echo "<img src='".$icon[1]."' style='width:16px;height:16px;'>";13// echo "string";14 // print_r($array);15 }else{16//去掉多余的斜杠17$url = substr_replace($url,"",-1);18echo "⽆效url资源!".$url.$icon[1];19echo "<img src='".$url.$icon[1]."' style='width:16px;height:16px;'>";20 }2122 }else{23//这⾥笔者试了很多种⽅法,后来发现通过url可以⼊⼿,从url截取⽹址的根⽬录,由于习惯性的把⽂件名名为favicon.ico,所以可以直接访问类似这样的url得到图标⽂件,/favicon.ico 24$url=substr($url,7);//去除前⾯25$position = strpos($url, '/');26$url=substr($url,0,$position);27echo "<img src='http://".$url."/favicon.ico' style='width:16px;height:16px;'><br/>";28// echo $url."/favicon.ico<br/>";29 //判断⽹站的根⽬录是否存在.icon⽂件30 // $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];31 // echo dirname($url);32 // if(file_exists("favicon.ico"))33 // echo "<p>存在</p>";34 } 思路: 先判断源码中是否有那⼏⾏添加iocn的代码,如果有就直接抓取代码,再判断是否为有效的url,然后再判断显⽰,没有则获取根⽬录后显⽰。
解读图标文件图标文件是一种特殊的位图,它的大小固定(16*16 或32*32像素大小),且支持透明的特性。
图标的格式也有24位、8位和4位几种不同的格式,它与位图最大的区别是:位图无法支持透明而图标可以。
那图标是怎样做到这一点的呢?原来,图标采用对图像扫描两遍的方式进行记录位图信息的,第一遍扫描每个像素上的颜色数据完成后,重新以1位位图的方式对图像进行第二次扫描,并以辅助信息的方式追加在文件的后面,这样,图标文件的结构就比位图文件多了辅助信息这部分(见图)。
图标文件头位图信息头[系统调色盘] 图片信息辅助信息icofileheader bmpinfoheader rgbquad rgbdata fby(14bytes) (40bytes)为了使图标的某些部分变得透明,在第一遍扫描时,把这部分的颜色值改为黑色,在第二遍扫描时,这部分的颜色为白色,不透明的部分为黑色(0为黑色,1为白色)。
这样,图标的背景就变透明了。
编程举例:(保存为24位透明图标)我们熟悉图标文件的组成,就可以用照片来创建自己的高品质的带透明背景的图标了,为了简化程序代码,在下例的程序中,我省去了图像的操作,仅保留了把一幅32*32像素大小,带白色背景的24位位图,转化成24位透明图标的代码。
用VB6新建一个工程,命名为WriteIcoFile.vbp。
添加一个窗体WriteIcoFile.frm ,caption=” WriteIcoFile”。
添加图片框picture1,scalemode=3-pixel;autoredraw=true;autosize=true;borderstyle=0-none。
添加一个按钮command1的caption=”BmpToIco”,添加两个标签Label1,label2。
粘贴代码:Option ExplicitPrivate Type ICONFILEHEADER '22bytesidReserved As Integer ’为0idType As Integer ’为1idCount As Integer ’文件中图标个数,为1bWidth As Byte ’宽,为16或32bHeight As Byte ’ 高,为16或32bColorCount As Byte ’调色盘颜色数量:16或255 或0bReserved As Byte ’为0wPlanes As Integer ’为1wBitCount As Integer ’每个像素占的位数dwBytesInRes As Long ’图标文件后四项总字节数dwImageOffset As Long ’图标文件头长度,为22End TypePrivate Type BITMAPINFOHEADER '40 bytesbiSize As Long ’信息头的长度,为40biWidth As Long ’宽biHeight As Long ’扫描两遍,值为实实际高度的2 倍biPlanes As Integer ’为1biBitCount As Integer ’每个像素占的位数biCompression As Long ’为0biSizeImage As Long ’图标文件后三项总字节数biXPelsPerMeter As Long ’为0biYPelsPerMeter As Long ’为0biClrUsed As Long ’为0biClrImportant As Long ’为0End TypePrivate Type RGBQUAD '4bytes调色盘中颜色rgbBlue As BytergbGreen As BytergbRed As BytergbReserved As ByteEnd TypePrivate Type RGBDATA '24bitcolor图像信息中每一个像素包含的RGBb As Byteg As Byter As ByteEnd TypePrivate Sub Command1_Click() ’保存为24位透明图标If Picture1.Height = 32 And Picture1.Width = 32 ThenDim ifh As ICONFILEHEADER 'ICOfileheaderDim bih As BITMAPINFOHEADERDim rgbd() As RGBDATADim rgbl() As LongDim fby() As ByteOpen App.Path & "\temp.ico" For Binary As #1’设置图标文件头的值ifh.idReserved = 0ifh.idCount = 1ifh.idType = 1ifh.bHeight = 32ifh.bWidth = 32ifh.bColorCount = 0ifh.bReserved = 0ifh.wPlanes = 1ifh.wBitCount = 24ifh.dwBytesInRes = 3240ifh.dwImageOffset = Len(ifh)Put #1, , ifh’设置图片信息头的值bih.biSize = Len(bih)bih.biWidth = 32bih.biHeight = 64 '!!!bih.biPlanes = 1bih.biBitCount = 24bih.biCompression = 0&bih.biSizeImage = 3200bih.biXPelsPerMeter = 0&bih.biYPelsPerMeter = 0&bih.biClrUsed = 0&bih.biClrImportant = 0&Put #1, , bihDim i, j, k As IntegerDim by, byy As Longby = 16777215ReDim rgbd(1023) ’申请1024个像素的RGB空间’从左下角逐行扫描For i = 0 To 31For j = 0 To 31byy = Picture1.Point(j, 31 - i) ’获得图像上某一点的颜色Long值If byy = by Then ’如果该点为白色(16777215=RGB(255,255,255))rgbd(k).r = 0rgbd(k).g = 0rgbd(k).b = 0Elsergbd(k).b = Int(byy / 65536)byy = byy - rgbd(k).b * 65536rgbd(k).g = Int(byy / 256)rgbd(k).r = byy Mod 256End Ifk = k + 1NextNextPut #1, , rgbd’计算图标的辅助信息,白色背景部分对应的位的值为1ReDim fby(127)k = 0For i = 0 To 31For j = 0 To 3 ’每个字节包含8个像素的1位信息byy = 0If Picture1.Point(j * 8 + 7, 31 - i) = by Then byy = 1If Picture1.Point(j * 8 + 6, 31 - i) = by Then byy = byy + 2If Picture1.Point(j * 8 + 5, 31 - i) = by Then byy = byy + 4If Picture1.Point(j * 8 + 4, 31 - i) = by Then byy = byy + 8If Picture1.Point(j * 8 + 3, 31 - i) = by Then byy = byy + 16If Picture1.Point(j * 8 + 2, 31 - i) = by Then byy = byy + 32If Picture1.Point(j * 8 + 1, 31 - i) = by Then byy = byy + 64If Picture1.Point(j * 8, 31 - i) = by Then byy = byy + 128fby(k) = byyk = k + 1NextNextPut #1, , fbyClose #1Label1.Caption = "成功创建" & App.Path & "\temp.ico"ElseLabel1.Caption = "图片大小应为32*32"End IfEnd SubPrivate Sub Form_Load()Label2.Caption = "本例程序展示了图标创建的巅峰水平(能写出24位的透明的标准图标)" & vbCrLf & "为了简化程序,程序中只展示了将32*32带白色背景的的24位位图转化成图标文件的代码。
" & vbCrLf & "您如果想创建自已的图标,可以用自己做的图片代替同目录下的temp.bmp" & vbCrLf & "即可做出属于自己的高品质图标。
"Picture1.Picture = LoadPicture(App.Path & "\temp.bmp")End Sub编程原理:窗体导入时,导入同目录下的24位位图“temp.bmp”,command1按下时,判断图片大小是否为32*32,为图标文件头和位图信息头赋值,利用Picture1的Point(x,y) as long方法,从左下角逐行扫描,获得图像的像素颜色的long值,然后经过计算,转换成rgbd(),来获得图像的24位图像信息,需注意的是,把白色背景的值,改为黑色的值(r=0;g=0,b=0),接着,再重新扫描,把白色背景的值设为1,不透明部分值设为0 ,经过计算获得图像的1位图像信息,最后写入同目录下的“temp.ico”。
Long 与(R,G,B)之间的转换:我说明一下二进制和十进制的转换问题,我们在利用图片框Picture1的PSet (x,y), col和Point(x,y) 来描绘图像和获得图像颜色值时,使用的是Long类型的数据,而24位位图文件中的颜色信息是以(R,G,B)Bytes类型的数据存储的,在(R,G,B)与Long互换的计算中,需要用到二进制与十进制的转换。
R=255 G=255 B=2551 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 128 64 32 16 8 4 2 1这样每8位上的数加起来就有255RGB(b,g,r)就是把3个8位二进制连成1 个24位的数1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 118388608…………………..65536…………………………512 256………………… 8 4 21这样24位上的数加起来就有16777215 即RGB(255,255,255)=16777215R=1 G=1 B=10 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1这样每8位上的数加起来就有1RGB(b,g,r)把3个8位二进制连成1 个24位的数0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 110 0 0 0 0 0 0 65536 0 0 0 0 0 0 0 256 0 0 0 0 0 0 01这样24位上的数加起来就有65739 即RGB(1,1,1)=65793我通过举几个例子来说明这方面的知识:把(R,G,B)转换成Long用RGB(b,g,r)就可以完成。