标签: bitmapdata

Actionscript 3:如何从BitmapData中删除所有黑色像素?

假设我有一个BitmapData,其中不同的像素代表一个对象,并且我想要删除它周围的一些黑色像素.

我想获得一个新的BitmapData,其中对象的宽度和高度由非黑色像素表示.

例如,假设我有一个BitmapData 400x400px,但由非黑色像素表示的对象占据矩形:x = 100,y = 100,width = 200,height = 200.我想获得表示该rect的新BitmapData,应删除所有黑色像素.当然,我没有该矩形的坐标,我需要以某种方式在完整的黑色位图数据和原始黑色位图数据之间做出区别,并构造一个新的位图数据(不同的宽度和高度).

有关如何做到这一点的任何想法吗?

actionscript-3 bitmapdata

0
推荐指数
1
解决办法
3071
查看次数

如何在flex中的BitmapData中制作透明色

我有这样的代码:

var bitmapData:BitmapData = new BitmapData(width, height);
bitmapData.draw(this);
var ba:ByteArray = (new PNGEncoder()).encodeByteArray(bitmapData.getPixels(clipRect),width,height,true);
Run Code Online (Sandbox Code Playgroud)

我想让生成的PNG中的白色透明.这样做的最佳方法是什么?

apache-flex bitmapdata

0
推荐指数
1
解决办法
1887
查看次数

AS3 bitmapdata未更新

在我的课程中,我创建了一个带有相应BitmapData对象的Bitmap:

班级成员

private var _bitmapData:BitmapData;
private var _bitmap:Bitmap;
private var _history:Array;
Run Code Online (Sandbox Code Playgroud)

构造函数:

_history = new Array();
_bitmapData = new BitmapData(50, 50, true, 0x00FFFFFF);
_bitmap = new Bitmap(_bitmapData);
this.addChild(_bitmap);
Run Code Online (Sandbox Code Playgroud)

在我的"modifyImage"函数中,我想修改_bitmapData.但是,除非我包含out注释行,否则这不起作用:

//removeChild(this._bitmap);
_history.push(_bitmapData.clone());
_bitmapData.draw(item); // "item" passed by value
//this.addChild(_bitmap);
Run Code Online (Sandbox Code Playgroud)

要还原更改,我使用以下内容(同样,我必须删除并将_bitmap添加到舞台):

//removeChild(this._bitmap);
_bitmapData = _history.pop();
_bitmap = new Bitmap(_bitmapData); // [EDIT]: out-commented this by mistake
//this.addChild(_bitmap);
Run Code Online (Sandbox Code Playgroud)

他们是一次又一次地删除和添加_bitmap的解决方法吗?

非常感谢帮助.提前致谢!

bitmap actionscript-3 bitmapdata

0
推荐指数
1
解决办法
1160
查看次数

位图数据.draw()与变换矩阵

我正在开发一个项目,用户可以使用他们的网络摄像头拍摄自己的快照,然后通过转换比例和旋转来编辑此图像并保存结果.

我已经完成了大部分工作,用户可以自己拍摄快照,使用Senocular的变换工具变换对象,然后我使用.draw()来保存这个变换后的对象.问题是.draw()只是从舞台的左上角抓取数据.它正在绘制变换后的对象,但仅从左上角绘制.

为什么它只从左上角绘制,如何将坐标设置为仅从设置捕获图像的区域绘制?

谢谢.

您可以按以下网址查看该文件:http://s46264.gridserver.com/dev/dave/pb-photo/index.html

我已经在http://s46264.gridserver.com/dev/dave/pb-photo/pb-photo.zip上压缩了FLA和相关课程.

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.net.FileReference;
import com.adobe.images.JPGEncoder;
import com.senocular.display.transform.*;

// create container for captured image to apply Transform Tool to
var box:Sprite = new Sprite();
addChild(box);
box.graphics.beginFill(0xAACCDD);
box.graphics.drawRect(-160, -120, 320, 240); // xreg, yreg, width, height (x-y = width-height / 2 to set centered registration point)
box.x = 520;
box.y = 140;

// create the Transform Tool
var tool:TransformTool = new TransformTool(new …
Run Code Online (Sandbox Code Playgroud)

flash matrix actionscript-3 bitmapdata

0
推荐指数
1
解决办法
9860
查看次数

如何从确定的位置检查一组位是否为0?

我正在写一个位图物理内存管理器,我希望实现一个函数,检查一个位是否从特定位开始是空闲的.现在我使用这个函数来检查单个位是否空闲,我调用它n次以查看n位是否空闲,但我认为这样做效率不高:

inline static bool physical_memory_map_test(uint32_t bit)
{
    return physical_memory.blocks[bit/32] & (1 << bit % 32);
}
Run Code Online (Sandbox Code Playgroud)

所以我想实现这样的东西:("包含伪代码):

static bool physical_memory_map_test(uint32_t starting_bit, uint32_t count)
{
    int excess = (starting_bit%32 + count) -32;
    if(excess < 0)
        return (physical_memory.blocks[bit/32] & "-excess number of 1s" << bit % 32)) && (physical_memory.blocks[bit/32] & "count + excess number of 1s" << bit % 32));

    return physical_memory.blocks[bit/32] & ("count number of ones, if count is 3, this should be 111" << bit % 32); 
}
Run Code Online (Sandbox Code Playgroud)

或者更好的方法来检查所有位是否为0(返回true)或者其中至少有一位是1(返回false)我怎么能这样做?

c bit-manipulation bitmapdata

0
推荐指数
1
解决办法
124
查看次数

如何处理 1 位和 4 位图像?

BitmapLocker类用于快速读取/写入Bitmap图像文件中的像素。

但是,Color GetPixel(int x, int y)void SetPixel(int x, int y, Color c)不能处理1位和4位图像。

public class BitmapLocker : IDisposable
{
    //private properties
    Bitmap _bitmap = null;
    BitmapData _bitmapData = null;
    private byte[] _imageData = null;

    //public properties
    public bool IsLocked { get; set; }
    public IntPtr IntegerPointer { get; private set; }
    public int Width 
    { 
        get 
        {
            if (IsLocked == false) throw new InvalidOperationException("not locked");
            return _bitmapData.Width; 
        } 
    }
    public int Height 
    {
        get …
Run Code Online (Sandbox Code Playgroud)

c# image-processing bitmapdata

0
推荐指数
1
解决办法
3380
查看次数