Creating an Image Label from Buffer

This example demonstrates how to create an image label from a memory buffer. This example uses the ICreator81 (CreatePosition, CreateImageLabelFromBuffer, CreateLabelStyle) methods.

 

var SGWorld = newSGWorld81();

 

void  CreateImageLabelFromBuffer ()

{

    var image = System.Drawing.Image.FromFile(@"C:\sample.png");

    Bitmap bmp = (Bitmap)image;

    var ms = new MemoryStream();

    image.Save(ms, image.RawFormat);

 

    System.Drawing.ImageConverter ic = new System.Drawing.ImageConverter();

    Int32[] dwordArr = new Int32[bmp.Width * bmp.Height];

 

    for (int j = 0; j < bmp.Height; j++)

    {

        for (int i = 0; i < bmp.Width; i++)

        {

            Color c = bmp.GetPixel(i, j);

            dwordArr[(j * bmp.Width) + i] = (Int32)((c.R << 0) | (c.G << 8) | (c.B << 16) | (c.A << 24));

        }

    }

 

    ITerrainImageLabel81 labelFromMemory = SGWorld.Creator.CreateImageLabelFromBuffer(

        SGWorld.Creator.CreatePosition(0, 0, 100),

        dwordArr,

        bmp.Width,

        bmp.Height,

        SGWorld.Creator.CreateLabelStyle()

    );

}