public static DefineBitsLossless build(LosslessImage image) { DefineBitsLossless defineBitsLossless = new DefineBitsLossless(flash.swf.TagValues_Fields.stagDefineBitsLossless2); defineBitsLossless.format = 5; defineBitsLossless.width = image.Width; defineBitsLossless.height = image.Height; int[] pixels = (int[]) image.Pixels; defineBitsLossless.data = new sbyte[pixels.Length * 4]; for (int i = 0; i < pixels.Length; i++) { int offset = i * 4; int alpha = (pixels[i] >> 24) & 0xFF; defineBitsLossless.data[offset] = (sbyte) alpha; // [preilly] Ignore the other components if alpha is transparent. This seems // to be a bug in the player. Additionally, premultiply the alpha and the // colors, because the player expects this. if (defineBitsLossless.data[offset] != 0) { int red = (pixels[i] >> 16) & 0xFF; defineBitsLossless.data[offset + 1] = (sbyte) ((red * alpha) / 255); int green = (pixels[i] >> 8) & 0xFF; defineBitsLossless.data[offset + 2] = (sbyte) ((green * alpha) / 255); int blue = pixels[i] & 0xFF; defineBitsLossless.data[offset + 3] = (sbyte) ((blue * alpha) / 255); } } return defineBitsLossless; }
public static DefineBits build(System.String name, LosslessImage image) { DefineBitsLossless defineBits = build(image); defineBits.name = name; return(defineBits); }
public static DefineBitsLossless build(LosslessImage image) { DefineBitsLossless defineBitsLossless = new DefineBitsLossless(flash.swf.TagValues_Fields.stagDefineBitsLossless2); defineBitsLossless.format = 5; defineBitsLossless.width = image.Width; defineBitsLossless.height = image.Height; int[] pixels = (int[])image.Pixels; defineBitsLossless.data = new sbyte[pixels.Length * 4]; for (int i = 0; i < pixels.Length; i++) { int offset = i * 4; int alpha = (pixels[i] >> 24) & 0xFF; defineBitsLossless.data[offset] = (sbyte)alpha; // [preilly] Ignore the other components if alpha is transparent. This seems // to be a bug in the player. Additionally, premultiply the alpha and the // colors, because the player expects this. if (defineBitsLossless.data[offset] != 0) { int red = (pixels[i] >> 16) & 0xFF; defineBitsLossless.data[offset + 1] = (sbyte)((red * alpha) / 255); int green = (pixels[i] >> 8) & 0xFF; defineBitsLossless.data[offset + 2] = (sbyte)((green * alpha) / 255); int blue = pixels[i] & 0xFF; defineBitsLossless.data[offset + 3] = (sbyte)((blue * alpha) / 255); } } return(defineBitsLossless); }
public static DefineTag buildSprite(System.String name, LosslessImage image) { TagList taglist = new TagList(); DefineBitsLossless defineBits = build(image); taglist.defineBitsLossless2(defineBits); DefineShape ds3 = ImageShapeBuilder.buildImage(defineBits, defineBits.width, defineBits.height); taglist.defineShape3(ds3); PlaceObject po2 = new PlaceObject(ds3, 1); po2.Matrix = new Matrix(); //Ahipo2.setName(name); taglist.placeObject2(po2); return defineSprite(name, taglist); }
public static DefineTag buildSprite(System.String name, LosslessImage image) { TagList taglist = new TagList(); DefineBitsLossless defineBits = build(image); taglist.defineBitsLossless2(defineBits); DefineShape ds3 = ImageShapeBuilder.buildImage(defineBits, defineBits.width, defineBits.height); taglist.defineShape3(ds3); PlaceObject po2 = new PlaceObject(ds3, 1); po2.Matrix = new Matrix(); //Ahipo2.setName(name); taglist.placeObject2(po2); return(defineSprite(name, taglist)); }
public static DefineBits build(System.String name, LosslessImage image) { DefineBitsLossless defineBits = build(image); defineBits.name = name; return defineBits; }