2

私は変数を次のように宣言しました
Bitmap image;
Container storeImg;

画像はタイプとしてコンテナ
storeImg+= image;
に 保存されるため、画像を保存していますBLOB

後でビットマップ変数で画像を取得しようとすると、たとえば
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;
}

これは、あなたが想像するように2ではなく6を出力します。

また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;
}

storeImg2つの値が含まれているため、これは失敗しblobます。

割り当てを次のように変更します。

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

これは機能し ます。これは、 storeImg2つのcontainer値(を含むblob)が含まれているためです。

コンテナフィールドとの間でファイルをロードおよび保存するも参照してください。

于 2012-09-26T14:34:11.713 に答える