←Select platform

RasterBufferResize Class

Summary
Provides support for resizing image data buffers.
Syntax
C#
VB
C++
publicclassRasterBufferResize
PublicClassRasterBufferResize
publicref classRasterBufferResize
Example

This example will load an image, resizes each line then saves the resized image back to disk.

C#
VB
usingLeadtools;usingLeadtools.Codecs;publicvoidRasterBufferResizeExample(){stringsrcFileName = Path.Combine(LEAD_VARS.ImagesDir,"Image1.cmp");stringdestFileName = Path.Combine(LEAD_VARS.ImagesDir,"Image1_resized.bmp");using(RasterCodecs codecs =newRasterCodecs()){codecs.ThrowExceptionsOnInvalidImages =true;// Load the source imageusing(RasterImage srcImage = codecs.Load(srcFileName)){intdestWidth = srcImage.Width / 2;intdestHeight = srcImage.Height / 2;// Create the destination imageusing(RasterImage destImage =newRasterImage(RasterMemoryFlags.Conventional,destWidth,destHeight,srcImage.BitsPerPixel,srcImage.Order,srcImage.ViewPerspective,srcImage.GetPalette(),IntPtr.Zero,0)){// allocate buffer for one scanline from source imagebyte[] scanLine =newbyte[srcImage.BytesPerLine];// resize itRasterBufferResize bufferResize =newRasterBufferResize();// Initialize the resize process.bufferResize.Start(srcImage.Width, srcImage.Height, destImage.Width, destImage.Height);srcImage.Access();destImage.Access();// Current destination row numberintdestRow = 0;for(inti = 0; i < srcImage.Height; i++){// Get a scanline from the source image and resize itsrcImage.GetRow(i, scanLine, 0, srcImage.BytesPerLine);bufferResize.ResizeBuffer(scanLine, 0, i, srcImage.BitsPerPixel);// Output as many or as few rows as ResizeBuffer suppliesfor(intj = 0; j < bufferResize.CopyRepetitions; j++){destImage.SetRow(destRow, scanLine, 0, bufferResize.LineWidth * 3);destRow++;}}destImage.Release();srcImage.Release();bufferResize.Stop();// Save the destination imagecodecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 24);}}}}staticclassLEAD_VARS{publicconststringImagesDir =@"C:\LEADTOOLS21\Resources\Images";}
ImportsLeadtoolsImportsLeadtools.CodecsPublicSubRasterBufferResizeExample()DimcodecsAsRasterCodecs =NewRasterCodecs()codecs.ThrowExceptionsOnInvalidImages =TrueDimsrcFileNameAsString= Path.Combine(LEAD_VARS.ImagesDir,"Image1.cmp")DimdestFileNameAsString= Path.Combine(LEAD_VARS.ImagesDir,"Image1_resized.bmp")' Load the source imageDimsrcImageAsRasterImage = codecs.Load(srcFileName)DimdestWidthAsInteger= srcImage.Width \ 2DimdestHeightAsInteger= srcImage.Height \ 2' Create the destination imageDimdestImageAsRasterImage =NewRasterImage(RasterMemoryFlags.Conventional,destWidth, destHeight, srcImage.BitsPerPixel, srcImage.Order,srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0)' allocate buffer for one scanline from source imageDimscanLineAsByte() =NewByte(srcImage.BytesPerLine - 1) {}' resize itDimbufferResizeAsRasterBufferResize =NewRasterBufferResize()' Initialize the resize process.bufferResize.Start(srcImage.Width, srcImage.Height, destImage.Width, destImage.Height)srcImage.Access()destImage.Access()' Current destination row numberDimdestRowAsInteger= 0DimiAsInteger= 0DoWhilei < srcImage.Height' Get a scanline from the source image and resize itsrcImage.GetRow(i, scanLine, 0, srcImage.BytesPerLine)bufferResize.ResizeBuffer(scanLine, 0, i, srcImage.BitsPerPixel)' Output as many or as few rows as ResizeBuffer suppliesDimjAsInteger= 0DoWhilej < bufferResize.CopyRepetitionsdestImage.SetRow(destRow, scanLine, 0, bufferResize.LineWidth * 3)destRow += 1j += 1Loopi += 1LoopdestImage.Release()srcImage.Release()bufferResize.Stop()' Save the destination imagecodecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 24)' Clean upsrcImage.Dispose()destImage.Dispose()EndSubPublicNotInheritableClassLEAD_VARSPublicConstImagesDirAsString="C:\LEADTOOLS21\Resources\Images"EndClass
Requirements

Target Platforms

Leadtools Assembly
188金宝搏的网址客服|Support|Contact Us|Intellectual Property Notices
© 1991-2021LEAD Technologies, Inc.All Rights Reserved.