public int BytesPerLine { get; }
@property (nonatomic, assign, readonly) NSUInteger bytesPerLine
public int getBytesPerLine();
public:
property int BytesPerLine {
int get();
}
BytesPerLine # get (RasterImage)
Number of bytes per per scanline for the image data of this RasterImage.
The BytesPerLine value is rounded upward to the nearest multiple of four.
You can use this property to allocate the buffer size when manipulating the scanline data of a RasterImage directly through the GetRow and SetRow methods.
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