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

📄 chunk_trns.java

📁 Mapserver的一个java客户端,包含两个applet支持地图显示。
💻 JAVA
字号:
// Copyright (C) 1998, 1999, 2001 Chris Nokleberg// Please see included LICENSE.TXTpackage com.sixlegs.image.png;import java.awt.Color;import java.io.IOException;final class Chunk_tRNSextends Chunk{    /* package */ int rgb;    /* package */ int rgb_low;    /* package */ int r, g, b;    Chunk_tRNS()    {        super(tRNS);    }    protected boolean multipleOK()    {        return false;    }    protected boolean beforeIDAT()    {        return true;    }    protected void readData()    throws IOException    {        int d = img.data.header.outputDepth;        switch (img.data.header.colorType) {        case PngImage.COLOR_TYPE_GRAY:            if (length != 2) badLength(2);            if (img.data.header.depth == 16) {                r = g = b = in_data.readUnsignedByte();                int low = in_data.readUnsignedByte();                img.data.properties.put("transparency low bytes", new Color(low, low, low));            } else {                r = g = b = in_data.readUnsignedShort();            }            rgb = r | r << d | r << (d * 2);            img.data.header.model = img.data.header.alphaModel;            img.data.properties.put("transparency", new Color(r, g, b));            break;        case PngImage.COLOR_TYPE_RGB:            if (length != 6) badLength(6);            if (img.data.header.depth == 16) {                r = in_data.readUnsignedByte();                int low_r = in_data.readUnsignedByte();                g = in_data.readUnsignedByte();                int low_g = in_data.readUnsignedByte();                b = in_data.readUnsignedByte();                int low_b = in_data.readUnsignedByte();                rgb_low = low_b | low_g << 8 | low_r << 16;                img.data.properties.put("transparency low bytes", new Color(low_r, low_g, low_b));            } else {                r = in_data.readUnsignedShort();                g = in_data.readUnsignedShort();                b = in_data.readUnsignedShort();            }            rgb = b | g << d | r << (d * 2);            img.data.header.model = img.data.header.alphaModel;            img.data.properties.put("transparency", new Color(r, g, b));            break;        case PngImage.COLOR_TYPE_PALETTE:            if (img.data.palette == null)                throw new PngException("tRNS chunk must follow PLTE chunk");            Chunk_PLTE p = img.data.palette;            int size = p.r.length;            if (length > size) badLength();            p.a_raw = new int[size];            p.a = new byte[size];            int i = 0;            while (i < length) {                p.a[i] = (byte)(p.a_raw[i] = in_data.readUnsignedByte());                i++;            }            while (i < size) {                p.a[i] = (byte)(p.a_raw[i] = 0xFF);                i++;            }            img.data.properties.put("transparency size", new Integer(length));            p.updateProperties(true);            break;        default:            throw new PngException("tRNS prohibited for color type " + img.data.header.colorType);        }    }}

⌨️ 快捷键说明

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