コード例 #1
0
    private void CreateLetterMask()
    {
        InitImageHeader();
        var image = (ImageImpl)mLetterMask;

        SetImageValues(mLetterImageHeader, image);
        AllocateImage(image);
        mLetterImageHeader.data = image.UnmanagedData;

        var imageHeaderPtr = Marshal.AllocHGlobal(Marshal.SizeOf(
                                                      typeof(QCARManagerImpl.ImageHeaderData)));

        Marshal.StructureToPtr(mLetterImageHeader, imageHeaderPtr, false);
        QCARWrapper.Instance.WordGetLetterMask(ID, imageHeaderPtr);
        mLetterImageHeader = (QCARManagerImpl.ImageHeaderData)Marshal.PtrToStructure(imageHeaderPtr, typeof(QCARManagerImpl.ImageHeaderData));

        if (mLetterImageHeader.reallocate == 1)
        {
            Debug.LogWarning("image wasn't allocated correctly");
            return;
        }

        // Copy data:
        image.CopyPixelsFromUnmanagedBuffer();
        mLetterMask = image;

        Marshal.FreeHGlobal(imageHeaderPtr);
    }
コード例 #2
0
 private void InitImageHeader()
 {
     this.mLetterImageHeader        = new QCARManagerImpl.ImageHeaderData();
     this.mLetterImageHeader.width  = this.mLetterImageHeader.bufferWidth = (int)(this.Size.x + 1f);
     this.mLetterImageHeader.height = this.mLetterImageHeader.bufferHeight = (int)(this.Size.y + 1f);
     this.mLetterImageHeader.format = 4;
     this.mLetterMask = new ImageImpl();
 }
コード例 #3
0
 private static void SetImageValues(QCARManagerImpl.ImageHeaderData imageHeader, ImageImpl image)
 {
     image.Width        = imageHeader.width;
     image.Height       = imageHeader.height;
     image.Stride       = imageHeader.stride;
     image.BufferWidth  = imageHeader.bufferWidth;
     image.BufferHeight = imageHeader.bufferHeight;
     image.PixelFormat  = (Image.PIXEL_FORMAT)imageHeader.format;
 }
コード例 #4
0
    private void InitImageHeader()
    {
        mLetterImageHeader        = new QCARManagerImpl.ImageHeaderData();
        mLetterImageHeader.width  = mLetterImageHeader.bufferWidth = (int)(Size.x + 1);
        mLetterImageHeader.height = mLetterImageHeader.bufferHeight = (int)(Size.y + 1);
        mLetterImageHeader.format = (int)Image.PIXEL_FORMAT.GRAYSCALE;

        mLetterMask = new ImageImpl();
    }
コード例 #5
0
    private void CreateLetterMask()
    {
        this.InitImageHeader();
        ImageImpl mLetterMask = (ImageImpl)this.mLetterMask;

        SetImageValues(this.mLetterImageHeader, mLetterMask);
        AllocateImage(mLetterMask);
        this.mLetterImageHeader.data = mLetterMask.UnmanagedData;
        IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(QCARManagerImpl.ImageHeaderData)));

        Marshal.StructureToPtr(this.mLetterImageHeader, ptr, false);
        QCARWrapper.Instance.WordGetLetterMask(base.ID, ptr);
        this.mLetterImageHeader = (QCARManagerImpl.ImageHeaderData)Marshal.PtrToStructure(ptr, typeof(QCARManagerImpl.ImageHeaderData));
        if (this.mLetterImageHeader.reallocate == 1)
        {
            Debug.LogWarning("image wasn't allocated correctly");
        }
        else
        {
            mLetterMask.CopyPixelsFromUnmanagedBuffer();
            this.mLetterMask = mLetterMask;
            Marshal.FreeHGlobal(ptr);
        }
    }
コード例 #6
0
    private void InitImageHeader()
    {
        mLetterImageHeader = new QCARManagerImpl.ImageHeaderData();
        mLetterImageHeader.width = mLetterImageHeader.bufferWidth = (int)(Size.x + 1);
        mLetterImageHeader.height = mLetterImageHeader.bufferHeight = (int) (Size.y + 1);
        mLetterImageHeader.format = (int)Image.PIXEL_FORMAT.GRAYSCALE;

        mLetterMask = new ImageImpl();
    }
コード例 #7
0
    private void CreateLetterMask()
    {
        InitImageHeader();
        var image = (ImageImpl)mLetterMask;
        SetImageValues(mLetterImageHeader, image);
        AllocateImage(image);
        mLetterImageHeader.data = image.UnmanagedData;

        var imageHeaderPtr = Marshal.AllocHGlobal(Marshal.SizeOf(
            typeof(QCARManagerImpl.ImageHeaderData)));
        Marshal.StructureToPtr(mLetterImageHeader, imageHeaderPtr, false);
        QCARWrapper.Instance.WordGetLetterMask(ID, imageHeaderPtr);
        mLetterImageHeader = (QCARManagerImpl.ImageHeaderData)Marshal.PtrToStructure(imageHeaderPtr, typeof(QCARManagerImpl.ImageHeaderData));

        if (mLetterImageHeader.reallocate == 1)
        {
            Debug.LogWarning("image wasn't allocated correctly");
            return;
        }

        // Copy data:
        image.CopyPixelsFromUnmanagedBuffer();
        mLetterMask = image;

        Marshal.FreeHGlobal(imageHeaderPtr);
    }