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); }
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(); }
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; }
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(); }
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); } }
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(); }