blob: 152e5a25e76602d9758762bb3c6625ecb6746dfc [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.flex.swf.tags;
import org.apache.flex.swf.TagType;
/**
* Represents a <code>DefineBitsLossless</code> tag in a SWF file.
* <p>
* Defines a loss-less bitmap character that contains RGB bitmap data compressed
* with ZLIB. The data format used by the ZLIB library is described by Request
* for Comments (RFCs) documents 1950 to 1952.
* <p>
* Two kinds of bitmaps are supported.
* <ul>
* <li>Color-mapped images define a color-map of up to 256 colors, each
* represented by a 24-bit RGB value, and then use 8-bit pixel values to index
* into the color-map.</li>
* <li>Direct images store actual pixel color values using 15 bits (32,768
* colors) or 24 bits (about 17 million colors).</li>
* </ul>
*/
public class DefineBitsLosslessTag extends CharacterTag
implements IDefineBinaryImageTag, IAlwaysLongTag
{
public static final int BF_8BIT_COLORMAPPED_IMAGE = 3;
public static final int BF_15BIT_RGB_IMAGE = 4;
public static final int BF_24BIT_RGB_IMAGE = 5;
/**
* Constructor.
*/
public DefineBitsLosslessTag()
{
super(TagType.DefineBitsLossless);
}
/**
* Protected constructor for use by subclasses with other tag types.
*/
protected DefineBitsLosslessTag(TagType tagType)
{
super(tagType);
}
private int bitmapFormat;
private int bitmapWidth;
private int bitmapHeight;
private int bitmapColorTableSize;
private byte[] zlibBitmapData;
public int getBitmapFormat()
{
return bitmapFormat;
}
public void setBitmapFormat(int bitmapFormat)
{
this.bitmapFormat = bitmapFormat;
}
public int getBitmapWidth()
{
return bitmapWidth;
}
public void setBitmapWidth(int bitmapWidth)
{
this.bitmapWidth = bitmapWidth;
}
public int getBitmapHeight()
{
return bitmapHeight;
}
public void setBitmapHeight(int bitmapHeight)
{
this.bitmapHeight = bitmapHeight;
}
public int getBitmapColorTableSize()
{
return bitmapColorTableSize;
}
public void setBitmapColorTableSize(int bitmapColorTableSize)
{
this.bitmapColorTableSize = bitmapColorTableSize;
}
public byte[] getZlibBitmapData()
{
return zlibBitmapData;
}
public void setZlibBitmapData(byte[] zlibBitmapData)
{
this.zlibBitmapData = zlibBitmapData;
}
public static int getBf8bitColormappedImage()
{
return BF_8BIT_COLORMAPPED_IMAGE;
}
public static int getBf15bitRgbImage()
{
return BF_15BIT_RGB_IMAGE;
}
public static int getBf24bitRgbImage()
{
return BF_24BIT_RGB_IMAGE;
}
@Override
public byte[] getData()
{
return getZlibBitmapData();
}
}