public int SetRow(
int row,
IntPtr buffer,
int bufferCount
)
public long setRow(
int row,
byte[] buffer,
long bufferCount
)
public:
int SetRow(
int row,
IntPtr buffer,
int bufferCount
)
def SetRow(self,row,buffer,bufferCount):
row
The number of the row to update. The first row is 0, and the last row is 1 less than the image height.
buffer
Pointer to unmanaged memory buffer containing the image data. The buffer should contain uncompressed data regardless of whether the image is compressed or not.
bufferCount
Number of bytes to set. Use the BytesPerLine property of this RasterImage to determine the byte count of each line.
The number of bytes copied.
The image memory must be locked when you use this method. Normally, you can call Access to lock the memory before starting an operation that uses this method. Then call Release when the operation is finished.
You can use the BitsPerPixel property of the image to determine the number of bytes to set the bufferCount parameter. If the image is 8-bit then each byte is an index to the palette. If the image is a 24-bit image, then each three bytes represents one pixel element. Color order is determined by the Order property of the RasterImage object. This value can be RasterByteOrder.Rgb, RasterByteOrder.Bgr, or RasterByteOrder.Romm.
Note: To calculate the correct size for a single row of image data:
(((Width * BitsPerPixel) + 31) >> 3)) & ~3
(((Width * BitsPerPixel) + 7) / 8)
RasterByteOrder.Gray is only valid for 12 and 16-bit grayscale images. Support for 12 and 16-bit grayscale images is only available in the Document/Medical Imaging editions.
For more information, refer to Introduction to Image Processing With LEADTOOLS.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Core;
using Leadtools.ImageProcessing.Color;
using Leadtools.Dicom;
using Leadtools.Drawing;
using Leadtools.Controls;
using Leadtools.Svg;
public void GetRowTest()
{
RasterCodecs codecs = new RasterCodecs();
RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP"));
byte[] row1 = new byte[image.BytesPerLine];
byte[] row2 = new byte[image.BytesPerLine];
image.Access();
for (int y = 0; y < image.Height / 2; y++)
{
image.GetRow(y, row1, 0, row1.Length);
image.GetRow(image.Height - y - 1, row2, 0, row2.Length);
image.SetRow(y, row2, 0, row2.Length);
image.SetRow(image.Height - y - 1, row1, 0, row1.Length);
}
image.Release();
codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_getrow.BMP"), RasterImageFormat.Bmp, 0);
image.Dispose();
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
import leadtools.*;
import leadtools.codecs.*;
import leadtools.imageprocessing.core.*;
import leadtools.svg.*;
import leadtools.imageprocessing.CloneCommand;
import leadtools.imageprocessing.FillCommand;
import leadtools.imageprocessing.FlipCommand;
import leadtools.imageprocessing.GrayscaleCommand;
import leadtools.imageprocessing.color.InvertCommand;
import leadtools.imageprocessing.color.PosterizeCommand;
public void getRowExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
RasterCodecs codecs = new RasterCodecs();
String destFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1_getrow.BMP");
RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "IMAGE1.CMP"));
byte[] row1 = new byte[image.getBytesPerLine()];
byte[] row2 = new byte[image.getBytesPerLine()];
image.access();
for (int y = 0; y < image.getHeight() / 2; y++) {
image.getRow(y, row1, 0, row1.length);
image.getRow(image.getHeight() - y - 1, row2, 0, row2.length);
image.setRow(y, row2, 0, row2.length);
image.setRow(image.getHeight() - y - 1, row1, 0, row1.length);
}
image.release();
// Save it
codecs.save(image, destFileName, RasterImageFormat.BMP, 0);
// Clean up
image.dispose();
codecs.dispose();
assertTrue("file unsuccessfully saved to " + destFileName, (new File(destFileName)).exists());
System.out.printf("File saved successfully to %s%n", destFileName);
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document