VintaSoft Imaging .NET SDK 15.2: Документация для .NET разработчика
Vintasoft.Imaging.Codecs.ImageFiles Namespace / IRasterGridEditor Interface
Члены типа Объект Синтаксис Example Иерархия Требования Смотрите также
В этом разделе
IRasterGridEditor Интерфейс
В этом разделе
Определяет интерфейс для редактора растровых изображений, который может заменить прямоугольник изображения без перекодирования всего изображения.
Объектаня модель
IRasterGridEditor
Синтаксис
'Declaration

Public Interface IRasterGridEditor

public interface IRasterGridEditor

Пример

Вот пример, показывающий, как получить первую плитку указанной страницы TIFF из указанного файла, повернуть ее на 180 градусов, записать обратно в ее область и сохранить изменения обратно в TIFF файл:


''' <summary>
''' Gets an image of first tile of TIFF page,
''' rotates the tile image 180 degrees,
''' sets changed tile image as new image of first tile,
''' saves changes to the source TIFF file.
''' </summary>
Public Shared Sub ChangeTileOfTiffPage(tiffFilename As String, pageIndex As Integer)
    Using stream As System.IO.Stream = New System.IO.FileStream(tiffFilename, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)
        Using decoder As New Vintasoft.Imaging.Codecs.Decoders.TiffDecoder(stream)
            ' get raster grid editor
            Dim rasterGridEditor As Vintasoft.Imaging.Codecs.ImageFiles.IRasterGridEditor = decoder.GetRasterGridEditor()
            ' get grid of raster regions
            Dim grid As System.Drawing.Rectangle() = rasterGridEditor.GetRasterEditorGrid(pageIndex)
            If grid Is Nothing OrElse grid.Length = 0 Then
                Throw New System.Exception("Image tiles cannot be changed.")
            End If

            ' index of the region to change
            Dim rectIndex As Integer = 0
            ' get region to change
            Dim region As System.Drawing.Rectangle = grid(rectIndex)
            ' image of changing region
            Dim regionImage As Vintasoft.Imaging.VintasoftImage
            ' create image renderer
            Using renderer As New Vintasoft.Imaging.ImageRendering.ImageRenderer(decoder, pageIndex)
                ' create region rendering task
                Dim renderingTask As Vintasoft.Imaging.ImageRendering.ImageRenderingTask = Vintasoft.Imaging.ImageRendering.ImageRenderingTask.CreateImageRegion(region)
                ' set to convert to the source format
                renderingTask.ConvertDestImageToSourceFormat = True
                ' get an image of first tile
                regionImage = renderer.ExecuteRendering(renderingTask)
            End Using

            ' rotate the tile image 180 degrees
            regionImage.Flip(Vintasoft.Imaging.ImageProcessing.Transforms.ImageRotateFlipType.Rotate180FlipNone)

            ' set the tile image as new image of first tile
            rasterGridEditor.SetImageRect(pageIndex, rectIndex, regionImage, Nothing)
            regionImage.Dispose()

            ' save changes to the source TIFF file
            rasterGridEditor.SaveChanges(Nothing)
        End Using
    End Using


/// <summary>
/// Gets an image of first tile of TIFF page,
/// rotates the tile image 180 degrees,
/// sets changed tile image as new image of first tile,
/// saves changes to the source TIFF file.
/// </summary>
public static void ChangeTileOfTiffPage(string tiffFilename, int pageIndex)
{
    using (System.IO.Stream stream = new System.IO.FileStream(
        tiffFilename, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite))
    {
        using (Vintasoft.Imaging.Codecs.Decoders.TiffDecoder decoder =
            new Vintasoft.Imaging.Codecs.Decoders.TiffDecoder(stream))
        {
            // get raster grid editor
            Vintasoft.Imaging.Codecs.ImageFiles.IRasterGridEditor rasterGridEditor = decoder.GetRasterGridEditor();
            // get grid of raster regions
            System.Drawing.Rectangle[] grid = rasterGridEditor.GetRasterEditorGrid(pageIndex);
            if (grid == null || grid.Length == 0)
                throw new System.Exception("Image tiles cannot be changed.");

            // index of the region to change
            int rectIndex = 0;
            // get region to change
            System.Drawing.Rectangle region = grid[rectIndex];
            // image of changing region
            Vintasoft.Imaging.VintasoftImage regionImage;
            // create image renderer
            using (Vintasoft.Imaging.ImageRendering.ImageRenderer renderer =
                new Vintasoft.Imaging.ImageRendering.ImageRenderer(decoder, pageIndex))
            {
                // create region rendering task
                Vintasoft.Imaging.ImageRendering.ImageRenderingTask renderingTask =
                    Vintasoft.Imaging.ImageRendering.ImageRenderingTask.CreateImageRegion(region);
                // set to convert to the source format
                renderingTask.ConvertDestImageToSourceFormat = true;
                // get an image of first tile
                regionImage = renderer.ExecuteRendering(renderingTask);
            }

            // rotate the tile image 180 degrees
            regionImage.Flip(Vintasoft.Imaging.ImageProcessing.Transforms.ImageRotateFlipType.Rotate180FlipNone);

            // set the tile image as new image of first tile
            rasterGridEditor.SetImageRect(pageIndex, rectIndex, regionImage, null);
            regionImage.Dispose();

            // save changes to the source TIFF file
            rasterGridEditor.SaveChanges(null);
        }
    }

Требования

Целевые платформы: .NET 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также