首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3 - Scale BitmapData

AS3 - Scale BitmapData
EN

Stack Overflow用户
提问于 2012-05-23 22:40:10
回答 2查看 17.8K关注 0票数 5

我想把BitmapData缩放成不同的大小,比如200、400、600和800。

有什么好方法可以做到这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-24 18:10:34

您不能直接缩放BitmapData,但您可以对其进行缩放克隆。下面是一个扩展BitmapData的快速示例:

代码语言:javascript
复制
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.geom.Matrix;

import mx.core.BitmapAsset;

public class Test extends Sprite {


    [Embed(source="test.jpg")]
    private var Image:Class;

    public function Test() {

        var originalBitmapData:BitmapData = BitmapAsset(new Image()).bitmapData;

        function scaleBitmapData(bitmapData:BitmapData, scale:Number):BitmapData {
            scale = Math.abs(scale);
            var width:int = (bitmapData.width * scale) || 1;
            var height:int = (bitmapData.height * scale) || 1;
            var transparent:Boolean = bitmapData.transparent;
            var result:BitmapData = new BitmapData(width, height, transparent);
            var matrix:Matrix = new Matrix();
            matrix.scale(scale, scale);
            result.draw(bitmapData, matrix);
            return result;
        }

        var bitmapA:Bitmap = new Bitmap(originalBitmapData);
        addChild(bitmapA);

        var bitmapB:Bitmap = new Bitmap(scaleBitmapData(originalBitmapData, 0.5));
        addChild(bitmapB);

    }
}
}
票数 11
EN

Stack Overflow用户

发布于 2012-05-23 22:43:23

设置位图对象的宽度和高度将缩放该图像,因此请使用bitmapData创建位图,然后使用宽度/高度对其进行缩放,或者如果要使用缩放值,请使用scaleX/Y。

代码语言:javascript
复制
var bmp:Bitmap = new Bitmap(bmpData);
bmp.width = 400; //  or 600,800 etc.
bmp.height = 400;

如果您不想使用位图对象并直接缩放BitmapData,请参阅此What is the best way to resize a BitmapData object?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10722267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档