1

基本上我正在编写一个显示 Minecraft 皮肤的 PHP 脚本。我知道 Minecraft 皮肤中唯一可以透明的部分是蒙版覆盖区域,或“帽子”。该脚本运行良好,直到我找到了像 Notch(Minecraft 的创造者)这样的皮肤,除了主体部分外,它的背景都是全黑的。我知道纯黑色 (#000000) 不能作为透明度键,因为我见过皮肤在蒙版上有黑色部分但仍然透明的情况。此外,当我在 Photoshop 中打开我的个人皮肤时,背景区域几乎是黑色的 - #101010,即 RGB(16,16,16),但在游戏中仍然显示为透明。我的问题是如何确定帽子的像素是否透明?我可能想多了。

这是 Notch 的皮肤——

矿 -在此处输入图像描述

我在 Photoshop 中的 -

我对黑色透明键有什么误解吗?

4

2 回答 2

1

包含透明度的图像可以将透明颜色设置为任何值。大多数情况下,当我创建这样的文件时,我实际上是让透明的颜色变得花哨,比如明亮的粉红色或其他东西,这样就很明显了。但是,确切的透明度本身是在文件中设置的,而不是在 php 本身中。使用 Photoshop 之类的程序,您可以进入图像选项(例如http://answers.yahoo.com/question/index?qid=20090430191631AA61iQJ)并设置所需的确切 RBG。

如果您无法按原样显示文件,我将假设您正在对图像进行一些动态操作 - 这可能会导致透明度信息丢失。

于 2012-06-24T02:10:52.287 回答
0

您上传的图片不透明。

Minecraft 中的所有图片都是 PNG,PNG 格式具有透明度。在 Photoshop 中编辑图片时,您可以看到透明部分为灰色和白色的正方形。如果我没记错颜色表中设置为索引 255 的那些图片的透明度。并且可以是任何颜色。

看下面的图片:

http://i.imgur.com/Bqo0s.png 在此处输入图像描述

它们都具有背景透明度。但是当您将它们保存到您的计算机时,其中一个的背景会显示为黑色,而另一个显示为紫红色(#FF00FF)。

将网页另存为时,可以在 Photoshop 中设置透明度颜色Matte color

在 PHP PNG 库中,您可以读取透明度颜色索引 (PNG8)

于 2012-08-07T07:23:27.647 回答