blob: 8dcaa38b924a221a24b8fb5633e4dec31a428963 [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 flash.swf;
import java.awt.Color;
/**
* A utility methods for color, twips, and unicode conversion.
*/
public class SwfUtils implements SwfConstants
{
/**
* Forces a value within the range of 0 to 255.
*
* @param raw the initial value
* @return a value forced between 0 and 255
*/
public static int applyRange255(int raw)
{
if (raw < 0)
raw = 0;
else if (raw > 255)
raw = 255;
return raw;
}
/**
* @param color a color object
* @return integer representation, as 0xAARRGGBB
*/
public static int colorToInt(Color color)
{
return ((color.getBlue() & 0xFF)
| ((color.getGreen() & 0xFF) << 8)
| ((color.getRed() & 0xFF) << 16)
| ((color.getAlpha() & 0xFF) << 24));
}
/**
* @param r
* @param g
* @param b
* @return 0x00RRGGBB
*/
public static int colorToInt(int r, int g, int b)
{
return ((b & 0xFF)
| ((g & 0xFF) << 8)
| ((r & 0xFF) << 16));
}
/**
* @param r
* @param g
* @param b
* @param a
* @return 0xAARRGGBB
*/
public static int colorToInt(int r, int g, int b, int a)
{
return ((b & 0xFF)
| ((g & 0xFF) << 8)
| ((r & 0xFF) << 16)
| ((a & 0xFF) << 24));
}
/**
* @param i as 0xAARRGGBB
* @return
*/
public static Color intToColor(int i)
{
return new Color((i >> 16) & 0xFF, i >> 8 & 0xFF, i & 0xFF, i >> 24 & 0xFF);
}
public static int toTwips(double d)
{
return (int)Math.rint(d * TWIPS_PER_PIXEL);
}
public static double fromTwips(int d)
{
return d / TWIPS_PER_PIXEL;
}
public static String toUnicodePoint(char c)
{
StringBuilder sb = new StringBuilder(5);
for (int i = 3; i >= 0; i--)
{
sb.append(Character.forDigit((c >> (4 * i)) & 15, 16));
}
return sb.toString();
}
}