首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3 Blitting -复制像素,获取一些源图像

AS3 Blitting -复制像素,获取一些源图像
EN

Stack Overflow用户
提问于 2012-07-15 05:55:51
回答 1查看 5.2K关注 0票数 3

我正在尝试在屏幕上绘制一些东西,然后将其复制到舞台上的位图上。

我以前也这样做过,使用程序绘制的形状就像一个圆,但是当我使用一个库项目时,大多数源像素都被截断了。

这是我的代码-在另一个函数中,位图对象被添加到舞台上,我可以看到copyPixels可以工作,但正如我所说的,只复制了一些像素。我试过玩这个长方形,但到目前为止还没有成功。

代码语言:javascript
复制
var s:StarAsset = new StarAsset();

        s.x = e.stageX;
        s.y = e.stageY;
        s.scaleX = e.pressure * 10;
        s.scaleY = e.pressure * 10;
        s.rotation = Math.random() * 360;



        var bms:BitmapData = new BitmapData(s.width + 6, s.height + 6, true, 0x00000000);
        bms.draw(s);

        var srect:Rectangle = new Rectangle();
        srect.width = s.width + 6;
        srect.height = s.height + 6;

        var destpoint:Point = new Point(s.x, s.y);
        bmcontainer.copyPixels(bms, srect, destpoint, null, null, true);
EN

回答 1

Stack Overflow用户

发布于 2012-07-15 11:06:51

使用明星资源:

并假设您在舞台上对画布位图进行your操作:

代码语言:javascript
复制
var canvas:BitmapData = new BitmapData(600, 600, true, 0x0);
var bitmap:Bitmap = new Bitmap(canvas, PixelSnapping.AUTO, true);
addChild(bitmap);

此实现将实例化您的StarAsset,将其绘制为BitmapData,然后随机转换绘制到画布的每个副本的比例、位置和旋转:

代码语言:javascript
复制
makeStars();

function makeStars():void
{
    // get the star asset
    var s:StarAsset = new StarAsset();

    // copy star asset to bitmap data
    var bd:BitmapData = new BitmapData(s.width, s.height, true, 0x0);
    bd.draw(s);

    // draw 100 variants on BitmapData
    for(var i:uint = 0; i < 100; i++)
    {
        var positionX:Number = Math.random() * 600;
        var positionY:Number = Math.random() * 600;
        var scale:Number = Math.random();
        var angle:Number = Math.random() * 360;

        var matrix:Matrix = new Matrix();
        matrix.scale(scale, scale);
        matrix.rotate(angle * Math.PI / 180);
        matrix.translate(positionX, positionY);

        canvas.draw(bd, matrix, null, null, null, true);
    }
}

这会产生:

或者这里有1000颗星被画出来:

或者最终抽出10,000颗星:

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

https://stackoverflow.com/questions/11487663

复制
相关文章

相似问题

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