[url]http://bbs.9ria.com/viewthread.php?tid=76207&extra=page%3D2%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000[/url]
[img]http://dl.iteye.com/upload/attachment/439738/fab50ecc-7075-3229-b5d1-d11be4f58132.jpg[/img]
求解!如何将JPG图片的黑底去掉换成透明底?
在线等答案~ 请各路大侠们帮忙哈!
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.ByteArray;
/**
* ...
* @author sailor
*/
[SWF(backgroundColor=0x550055)]
public class Main extends Sprite
{
[Embed(source = '../lib/2.jpg')]
public var bmp:Class;
public function Main():void
{
var bmpd:BitmapData = Bitmap(new bmp()).bitmapData;
var newbmpd:BitmapData = new BitmapData(bmpd.width, bmpd.height, true, 0);
var buffer:ByteArray = bmpd.getPixels(bmpd.rect);
buffer.position = 0;
for (var i:int = 0, len:int = buffer.length ; i < len; i += 4 )
buffer[i] = (buffer[i + 1] + buffer[i + 2] + buffer[i + 3]) / 3;
newbmpd.setPixels(bmpd.rect, buffer);
addChild(new Bitmap(newbmpd));
}
}
}
[img]http://dl.iteye.com/upload/attachment/439738/fab50ecc-7075-3229-b5d1-d11be4f58132.jpg[/img]
求解!如何将JPG图片的黑底去掉换成透明底?
在线等答案~ 请各路大侠们帮忙哈!
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.ByteArray;
/**
* ...
* @author sailor
*/
[SWF(backgroundColor=0x550055)]
public class Main extends Sprite
{
[Embed(source = '../lib/2.jpg')]
public var bmp:Class;
public function Main():void
{
var bmpd:BitmapData = Bitmap(new bmp()).bitmapData;
var newbmpd:BitmapData = new BitmapData(bmpd.width, bmpd.height, true, 0);
var buffer:ByteArray = bmpd.getPixels(bmpd.rect);
buffer.position = 0;
for (var i:int = 0, len:int = buffer.length ; i < len; i += 4 )
buffer[i] = (buffer[i + 1] + buffer[i + 2] + buffer[i + 3]) / 3;
newbmpd.setPixels(bmpd.rect, buffer);
addChild(new Bitmap(newbmpd));
}
}
}
本文提供了一种使用ActionScript 3.0编程语言处理JPG图片的方法,具体实现了将图片中的黑色背景替换为透明背景的功能。代码示例中包含了创建自定义类Main的过程,并通过BitmapData对象操作像素数据来实现背景去除。

被折叠的 条评论
为什么被折叠?



