2

我已将变量声明为
Bitmap image;
Container storeImg;

我正在存储图像,因为
storeImg+= image;
图像作为BLOB类型存储在容器中

稍后当我尝试在 Bitmap 变量中检索图像时,例如
Bitmap image2;
image2 = conpeek(storeImg,1);

我收到“操作数不匹配错误”
我的问题是我已将图像声明为位图并存储在容器中,那么当我尝试仅在位图数据类型中检索相同图像时为什么会出现错误?

提前致谢。

4

1 回答 1

3

Bitmap扩展数据类型实际上是一个容器。

添加容器会产生连接,这可能是您的问题(部分):

static void BitmapTest(Args _args)
{
    Bitmap image1 = [1,2,3];
    Bitmap image2 = [7,8,9];
    Container storeImg;
    ;
    storeImg += image1;
    storeImg += image2;
    print conlen(storeImg);
    pause;
}

这将打印 6,而不是您可能假设的 2。

而且blobcontainer不是一回事:

static void BitmapTest(Args _args)
{
    BinData b = new BinData();
    Bitmap image1 = b.getData();
    Bitmap image2 = b.getData();
    Container storeImg;
    ;
    storeImg += image1;
    storeImg += image2;
    image2 = conpeek(storeImg,1);
    pause;
}

这将失败,因为storeImg包含两个blob值。

将分配更改为:

    storeImg += [image1];
    storeImg += [image2];

这将起作用,因为现在 storeImg包含两个container值(包含 a blob)。

另请参阅从容器字段加载和保存文件

于 2012-09-26T14:34:11.713 回答