RasterCachedImage

Inheritance: java.lang.Object, com.aspose.imaging.DisposableObject, com.aspose.imaging.DataStreamSupporter, com.aspose.imaging.Image, com.aspose.imaging.RasterImage

public abstract class RasterCachedImage extends RasterImage

Представляет растровое изображение, поддерживающее операции растровой графики. Это изображение кэширует данные пикселей при необходимости.

Методы

МетодОписание
isCached()Возвращает значение, указывающее, кэшированы ли данные изображения в данный момент.
cacheData()Кеширует данные и гарантирует, что дополнительная загрузка данных из базового DataStreamSupporter.DataStreamContainer не будет выполнена.
blend(Point origin, RasterImage overlay, Rectangle overlayArea, byte overlayAlpha)Смешивает данный экземпляр изображения с изображением overlay.
resize(int newWidth, int newHeight, int resizeType)Изменяет размер изображения.
resize(int newWidth, int newHeight, ImageResizeSettings settings)Изменяет размер изображения.
rotateFlip(int rotateFlipType)Поворачивает, отражает или одновременно поворачивает и отражает изображение.
rotate(float angle, boolean resizeProportionally, Color backgroundColor)Поворачивает изображение вокруг центра.
crop(Rectangle rectangle)Обрезка изображения.
dither(int ditheringMethod, int bitsCount, IColorPalette customPalette)Выполняет дизеринг текущего изображения.
grayscale()Преобразование изображения в его градации серого
normalizeHistogram()Нормализует гистограмму изображения \u2014 корректирует значения пикселей, чтобы использовать весь доступный диапазон.
autoBrightnessContrast()Выполняет автоматическую адаптивную нормализацию яркости и контрастности для всего изображения.
binarizeFixed(byte threshold)Бинаризация изображения с предопределённым порогом
binarizeOtsu()Бинаризация изображения с порогом Оцу
binarizeBradley(double brightnessDifference, int windowSize)Бинаризация изображения с использованием адаптивного порогового алгоритма Брэдли, основанного на интегральном изображении
binarizeBradley(double brightnessDifference)Бинаризация изображения с использованием адаптивного порогового алгоритма Брэдли, основанного на интегральном изображении
adjustBrightness(int brightness)Регулировка яркости изображения.
adjustContrast(float contrast)Контрастирование изображения
adjustGamma(float gammaRed, float gammaGreen, float gammaBlue)Гамма‑коррекция изображения.
adjustGamma(float gamma)Гамма‑коррекция изображения.
embedDigitalSignature(String password)Встраивает цифровую подпись, основанную на предоставленном пароле, в изображение с помощью стеганографии.
analyzePercentageDigitalSignature(String password)Вычисляет процентное сходство между извлечёнными данными и оригинальным паролем.
isDigitalSigned(String password, int percentageThreshold)Выполняет быструю проверку, определяющую, подписано ли изображение цифровой подписью, используя предоставленный пароль и порог.

Example: The following example transforms a colored raster cached image to its grayscale representation.

В следующем примере цветное растровое кешированное изображение преобразуется в его градацию серого. Изображения в градациях серого состоят исключительно из оттенков серого и содержат только информацию о интенсивности.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    rasterImage.grayscale();
    rasterImage.save(dir + "sample.Grayscale.png");
} finally {
    image.dispose();
}

isCached()

public boolean isCached()

Возвращает значение, указывающее, кэшированы ли данные изображения в данный момент.

Returns: boolean — true, если данные изображения кешированы; иначе false.

cacheData()

public void cacheData()

Кеширует данные и гарантирует, что дополнительная загрузка данных из базового DataStreamSupporter.DataStreamContainer не будет выполнена.

Example: The following example shows how raster image caching affects performance. В следующем примере показано, как кеширование растровых изображений влияет на производительность. Как правило, чтение кешированных данных происходит быстрее, чем чтение некешированных данных.

String dir = "c:\\temp\\";

// Загрузить изображение из PNG‑файла.
com.aspose.imaging.RasterCachedImage image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.png");
try {
    // Кешировать все данные пикселей, чтобы дополнительная загрузка данных из базового потока не выполнялась
    image.cacheData();

    long startTime = System.currentTimeMillis();

    // Чтение всех пикселей происходит довольно быстро.
    for (int y = 0; y < image.getHeight(); y++) {
        for (int x = 0; x < image.getWidth(); x++) {
            int color = image.getArgb32Pixel(x, y);
        }
    }

    long stopTime = System.currentTimeMillis();
    long elapsedMilliseconds = stopTime - startTime;
    System.out.println("Reading all cached pixels took " + elapsedMilliseconds + " ms.");
} finally {
    image.dispose();
}

// Загрузить изображение из PNG‑файла
image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.png");
try {
    long startTime = System.currentTimeMillis();

    // Чтение всех пикселей не так быстро, как при кэшировании
    for (int y = 0; y < image.getHeight(); y++) {
        for (int x = 0; x < image.getWidth(); x++) {
            int color = image.getArgb32Pixel(x, y);
        }
    }

    long stopTime = System.currentTimeMillis();
    long elapsedMilliseconds = stopTime - startTime;
    System.out.println("Reading all pixels without preliminary caching took " + elapsedMilliseconds + " ms.");
} finally {
    image.dispose();
}

// Вывод может выглядеть так:
//Чтение всех кэшированных пикселей заняло 2923 мс.
//    java.lang.OutOfMemoryError
//at com.aspose.imaging.internal.G.be.b(Unknown Source)
//at com.aspose.imaging.internal.G.be.a(Unknown Source)
//at com.aspose.imaging.internal.G.be.a(Unknown Source)
//at com.aspose.imaging.internal.G.be.a(Unknown Source)
//at com.aspose.imaging.internal.G.aB.a(Unknown Source)
//at com.aspose.imaging.RasterImage.a(Unknown Source)
//at com.aspose.imaging.RasterImage.getArgb32Pixel(Unknown Source)
//at com.aspose.examples.ExamplesTest.Test(ExamplesTest.java:54)

blend(Point origin, RasterImage overlay, Rectangle overlayArea, byte overlayAlpha)

public void blend(Point origin, RasterImage overlay, Rectangle overlayArea, byte overlayAlpha)

Смешивает данный экземпляр изображения с изображением overlay.

Parameters:

ПараметрТипОписание
originPointИсходная точка смешения фонового изображения.
overlayRasterImageНаложенное изображение.
overlayAreaRectangleОбласть наложения.
overlayAlphabyteПрозрачность наложения.

resize(int newWidth, int newHeight, int resizeType)

public void resize(int newWidth, int newHeight, int resizeType)

Изменяет размер изображения.

Parameters:

ПараметрТипОписание
newWidthintНовая ширина.
newHeightintНовая высота.
resizeTypeintТип изменения размера.

Example: This example loads a raster cached image and resizes it using various resizing methods.

String dir = "c:\\temp\\";

com.aspose.imaging.RasterCachedImage image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.png");
try {
    // Увеличить в 2 раза с использованием ресэмплинга ближайшего соседа.
    image.resize(image.getWidth() * 2, image.getHeight() * 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);

    // Сохранить в PNG с параметрами по умолчанию.
    image.save(dir + "upsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.png");
try {
    // Уменьшить в 2 раза с использованием ресэмплинга ближайшего соседа.
    image.resize(image.getWidth() / 2, image.getHeight() / 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);

    // Сохранить в PNG с параметрами по умолчанию.
    image.save(dir + "downsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.png");
try {
    // Увеличить в 2 раза с использованием билинейного ресэмплинга.
    image.resize(image.getWidth() * 2, image.getHeight() * 2, com.aspose.imaging.ResizeType.BilinearResample);

    // Сохранить в PNG с параметрами по умолчанию.
    image.save(dir + "upsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.png");
try {
    // Уменьшить в 2 раза с использованием билинейного ресэмплинга.
    image.resize(image.getWidth() / 2, image.getHeight() / 2, com.aspose.imaging.ResizeType.BilinearResample);

    // Сохранить в PNG с параметрами по умолчанию.
    image.save(dir + "downsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

resize(int newWidth, int newHeight, ImageResizeSettings settings)

public void resize(int newWidth, int newHeight, ImageResizeSettings settings)

Изменяет размер изображения.

Parameters:

ПараметрТипОписание
newWidthintНовая ширина.
newHeightintНовая высота.
settingsImageResizeSettingsНастройки изменения размера.

Example: This example loads a raster cached image and resizes it using various resizing settings.

String dir = "c:\\temp\\";

com.aspose.imaging.ImageResizeSettings resizeSettings = new com.aspose.imaging.ImageResizeSettings();

// Адаптивный алгоритм, основанный на взвешенной и смешанной рациональной функции и интерполяции lanczos3.
resizeSettings.setMode(com.aspose.imaging.ResizeType.AdaptiveResample);

// Небольшой прямоугольный фильтр
resizeSettings.setFilterType(com.aspose.imaging.ImageFilterType.SmallRectangular);

// Количество цветов в палитре.
resizeSettings.setEntriesCount(256);

// Квантование цветов не используется
resizeSettings.setColorQuantizationMethod(com.aspose.imaging.ColorQuantizationMethod.None);

// Эвклидов метод
resizeSettings.setColorCompareMethod(com.aspose.imaging.ColorCompareMethod.Euclidian);

com.aspose.imaging.RasterCachedImage image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.png");
try {
    // Уменьшить в 2 раза с помощью адаптивного пересэмплинга.
    image.resize(image.getWidth() / 2, image.getHeight() / 2, resizeSettings);
    image.save(dir + "downsample.adaptive.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

rotateFlip(int rotateFlipType)

public void rotateFlip(int rotateFlipType)

Поворачивает, отражает или одновременно поворачивает и отражает изображение.

Parameters:

ПараметрТипОписание
rotateFlipTypeintТип вращающего отражения.

Example: This example loads a raster cached image, rotates it by 90 degrees clockwise and optionally flips the image horizontally and(or) vertically.

String dir = "c:\\temp\\";

// Это вспомогательный класс.
class LocalHelper {
    // Получает строковое представление типа вращающего отражения.
    public String rotateFlipTypeToString(int rotateFilpType) {
        switch (rotateFilpType) {
            case com.aspose.imaging.RotateFlipType.RotateNoneFlipNone:
                return "RotateNoneFlipNone";
            case com.aspose.imaging.RotateFlipType.Rotate90FlipNone:
                return "Rotate90FlipNone";
            case com.aspose.imaging.RotateFlipType.Rotate180FlipNone:
                return "Rotate180FlipNone";
            case com.aspose.imaging.RotateFlipType.Rotate270FlipNone:
                return "Rotate270FlipNone";
            case com.aspose.imaging.RotateFlipType.RotateNoneFlipX:
                return "RotateNoneFlipX";
            case com.aspose.imaging.RotateFlipType.Rotate90FlipX:
                return "Rotate90FlipX";
            case com.aspose.imaging.RotateFlipType.Rotate180FlipX:
                return "Rotate180FlipX";
            case com.aspose.imaging.RotateFlipType.Rotate270FlipX:
                return "Rotate270FlipX";
            case com.aspose.imaging.RotateFlipType.RotateNoneFlipY:
                return "RotateNoneFlipY";
            case com.aspose.imaging.RotateFlipType.Rotate90FlipY:
                return "Rotate90FlipY";
            case com.aspose.imaging.RotateFlipType.Rotate180FlipY:
                return "Rotate180FlipY";
            case com.aspose.imaging.RotateFlipType.Rotate270FlipY:
                return "Rotate270FlipY";
            case com.aspose.imaging.RotateFlipType.RotateNoneFlipXY:
                return "RotateNoneFlipXY";
            case com.aspose.imaging.RotateFlipType.Rotate90FlipXY:
                return "Rotate90FlipXY";
            case com.aspose.imaging.RotateFlipType.Rotate180FlipXY:
                return "Rotate180FlipXY";
            case com.aspose.imaging.RotateFlipType.Rotate270FlipXY:
                return "Rotate270FlipXY";
            default:
                throw new java.lang.IllegalArgumentException("rotateFlipType");
        }
    }
}

// Вот основной пример
int[] rotateFlipTypes = new int[]
        {
                com.aspose.imaging.RotateFlipType.Rotate90FlipNone,
                com.aspose.imaging.RotateFlipType.Rotate90FlipX,
                com.aspose.imaging.RotateFlipType.Rotate90FlipXY,
                com.aspose.imaging.RotateFlipType.Rotate90FlipY,
        };

LocalHelper localHelper = new LocalHelper();
for (int rotateFlipType : rotateFlipTypes) {
    // Поверните, отразите и сохраните в выходной файл.
    com.aspose.imaging.RasterCachedImage image = (com.aspose.imaging.RasterCachedImage) com.aspose.imaging.Image.load(dir + "sample.bmp");
    try {
        image.rotateFlip(rotateFlipType);
        image.save(dir + "sample." + localHelper.rotateFlipTypeToString(rotateFlipType) + ".bmp");
    } finally {
        image.dispose();
    }
}

rotate(float angle, boolean resizeProportionally, Color backgroundColor)

public void rotate(float angle, boolean resizeProportionally, Color backgroundColor)

Поворачивает изображение вокруг центра.

Parameters:

ПараметрТипОписание
anglefloatУгол вращения в градусах. Положительные значения вращают по часовой стрелке.
resizeProportionallybooleanЕсли установить true, размер вашего изображения будет изменён в соответствии с проекциями вращённого прямоугольника (угловых точек); в противном случае размеры останутся неизменными, и будет вращено только внутреннее содержимое изображения.
backgroundColorColorЦвет фона.

crop(Rectangle rectangle)

public void crop(Rectangle rectangle)

Обрезка изображения.

Parameters:

ПараметрТипОписание
rectangleRectangleПрямоугольник.

Example: The following example crops a raster cached image. В следующем примере происходит обрезка растрового кэшированного изображения. Область обрезки указывается через com.aspose.imaging.Rectangle.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Обрежьте изображение. Область обрезки — прямоугольный центральный участок изображения.
    int width = rasterImage.getWidth();
    int height = rasterImage.getHeight();
    com.aspose.imaging.Rectangle area = new com.aspose.imaging.Rectangle(width / 4, height / 4, width / 2, height / 2);
    rasterImage.crop(area);

    // Сохраните обрезанное изображение в PNG
    rasterImage.save(dir + "sample.Crop.png");
} finally {
    image.dispose();
}

dither(int ditheringMethod, int bitsCount, IColorPalette customPalette)

public void dither(int ditheringMethod, int bitsCount, IColorPalette customPalette)

Выполняет дизеринг текущего изображения.

Parameters:

ПараметрТипОписание
ditheringMethodintМетод дизеринга.
bitsCountintОкончательное количество бит для дизеринга.
customPaletteIColorPaletteПользовательская палитра для дизеринга.

grayscale()

public void grayscale()

Преобразование изображения в его градации серого

Example: The following example transforms a colored raster cached image to its grayscale representation. В следующем примере цветное растровое кешированное изображение преобразуется в его градацию серого. Изображения в градациях серого состоят исключительно из оттенков серого и содержат только информацию о интенсивности.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    rasterImage.grayscale();
    rasterImage.save(dir + "sample.Grayscale.png");
} finally {
    image.dispose();
}

normalizeHistogram()

public void normalizeHistogram()

Нормализует гистограмму изображения \u2014 корректирует значения пикселей, чтобы использовать весь доступный диапазон.

autoBrightnessContrast()

public void autoBrightnessContrast()

Выполняет автоматическую адаптивную нормализацию яркости и контрастности для всего изображения.


// Example usage in image pre-processing:
 image.AutoBrightnessContrast();

Этот метод применяет конвейер продвинутых адаптивных фильтров (CLAHE, adaptive white stretch, and auto white balance) для улучшения визуального качества изображения за счёт повышения контрастности, локальной яркости и точности цветов.

**Filter pipeline:**

  1. Contrast-Limited Adaptive Histogram Equalization (CLAHE) \u2013 улучшает локальный контраст и усиливает слабые детали.
  2. Adaptive White Stretch \u2013 повышает эффективный уровень белого, защищая тёмные детали.
  3. Auto White Balance \u2013 корректирует цветовые оттенки, балансируя гистограммы каналов.

**Note:**

binarizeFixed(byte threshold)

public void binarizeFixed(byte threshold)

Бинаризация изображения с предопределённым порогом

Parameters:

ПараметрТипОписание
thresholdbyteЗначение порога. Если соответствующее серое значение пикселя больше порога, ему будет присвоено значение 255, иначе — 0.

Example: The following example binarizes a raster cached image with the predefined threshold. В следующем примере растровое кэшированное изображение бинаризуется с предопределённым порогом. Бинаризованные изображения содержат только 2 цвета - чёрный и белый.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Бинаризуйте изображение с пороговым значением 127.
    // Если соответствующее серое значение пикселя больше 127, ему будет присвоено значение 255, иначе 0.
    rasterImage.binarizeFixed((byte) 127);
    rasterImage.save(dir + "sample.BinarizeFixed.png");
} finally {
    image.dispose();
}

binarizeOtsu()

public void binarizeOtsu()

Бинаризация изображения с порогом Оцу

Example: The following example binarizes a raster cached image with Otsu thresholding. В следующем примере происходит бинаризация растрового кэшированного изображения с пороговой обработкой Оцу. Бинаризованные изображения содержат только 2 цвета — чёрный и белый.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Бинаризуйте изображение с пороговой обработкой Оцу.
    rasterImage.binarizeOtsu();
    rasterImage.save(dir + "sample.BinarizeOtsu.png");
} finally {
    image.dispose();
}

binarizeBradley(double brightnessDifference, int windowSize)

public void binarizeBradley(double brightnessDifference, int windowSize)

Бинаризация изображения с использованием адаптивного порогового алгоритма Брэдли, основанного на интегральном изображении

Parameters:

ПараметрТипОписание
brightnessDifferencedoubleРазница яркости между пикселем и средним значением окна s × s пикселей, центрированного вокруг этого пикселя.
windowSizeintРазмер окна s × s пикселей, центрированного вокруг этого пикселя.

Example: The following example binarizes a raster cached image with Bradley’s adaptive thresholding algorithm with the specified window size. В следующем примере происходит бинаризация растрового кэшированного изображения с адаптивным пороговым алгоритмом Брэдли с указанным размером окна. Бинаризованные изображения содержат только 2 цвета — чёрный и белый.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Бинаризуйте изображение с разницей яркости 5.
    // Яркость — это разница между пикселем и средним значением окна 10 × 10 пикселей, центрированного вокруг этого пикселя.
    rasterImage.binarizeBradley(5, 10);
    rasterImage.save(dir + "sample.BinarizeBradley5_10x10.png");
} finally {
    image.dispose();
}

binarizeBradley(double brightnessDifference)

public void binarizeBradley(double brightnessDifference)

Бинаризация изображения с использованием адаптивного порогового алгоритма Брэдли, основанного на интегральном изображении

Parameters:

ПараметрТипОписание
brightnessDifferencedoubleРазница яркости между пикселем и средним значением окна s × s пикселей, центрированного вокруг этого пикселя.

Example: The following example binarizes a raster cached image with Bradley’s adaptive thresholding algorithm. В следующем примере происходит бинаризация растрового кэшированного изображения с адаптивным пороговым алгоритмом Брэдли. Бинаризованные изображения содержат только 2 цвета — чёрный и белый.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Бинаризуйте изображение с разницей яркости 5.
    // Яркость — это разница между пикселем и средним значением окна s × s пикселей, центрированного вокруг этого пикселя.
    // Размер окна будет калиброван автоматически.
    rasterImage.binarizeBradley(5);
    rasterImage.save(dir + "sample.BinarizeBradley5.png");
} finally {
    image.dispose();
}

adjustBrightness(int brightness)

public void adjustBrightness(int brightness)

Регулировка яркости изображения.

Parameters:

ПараметрТипОписание
brightnessintЗначение яркости.

Example: The following example performs brightness correction of a raster cached image.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Установите значение яркости. Допустимые значения яркости находятся в диапазоне [-255, 255].
    rasterImage.adjustBrightness(50);
    rasterImage.save(dir + "sample.AdjustBrightness.png");
} finally {
    image.dispose();
}

adjustContrast(float contrast)

public void adjustContrast(float contrast)

Контрастирование изображения

Parameters:

ПараметрТипОписание
contrastfloatЗначение контрастности (в диапазоне [-100; 100])

Example: The following example performs contrast correction of a raster cached image.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Установите значение контрастности. Допустимые значения контрастности находятся в диапазоне [-100f, 100f].
    rasterImage.adjustContrast(50);
    rasterImage.save(dir + "sample.AdjustContrast.png");
} finally {
    image.dispose();
}

adjustGamma(float gammaRed, float gammaGreen, float gammaBlue)

public void adjustGamma(float gammaRed, float gammaGreen, float gammaBlue)

Гамма‑коррекция изображения.

Parameters:

ПараметрТипОписание
gammaRedfloatКоэффициент гаммы для красного канала
gammaGreenfloatКоэффициент гаммы для зелёного канала
gammaBluefloatКоэффициент гаммы для синего канала

Example: The following example performs gamma-correction of a raster cached image applying different coefficients for color components.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Установите отдельные коэффициенты гаммы для красного, зелёного и синего каналов.
    rasterImage.adjustGamma(1.5f, 2.5f, 3.5f);
    rasterImage.save(dir + "sample.AdjustGamma.png");
} finally {
    image.dispose();
}

adjustGamma(float gamma)

public void adjustGamma(float gamma)

Гамма‑коррекция изображения.

Parameters:

ПараметрТипОписание
гаммаfloatКоэффициент гаммы для красного, зелёного и синего каналов

Example: The following example performs gamma-correction of a raster cached image.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.png");
try {
    com.aspose.imaging.RasterCachedImage rasterImage = (com.aspose.imaging.RasterCachedImage) image;

    // Установите коэффициент гаммы для красного, зелёного и синего каналов.
    rasterImage.adjustGamma(2.5f);
    rasterImage.save(dir + "sample.AdjustGamma.png");
} finally {
    image.dispose();
}

embedDigitalSignature(String password)

public void embedDigitalSignature(String password)

Встраивает цифровую подпись, основанную на предоставленном пароле, в изображение с помощью стеганографии.

Parameters:

ПараметрТипОписание
парольjava.lang.StringПароль, используемый для генерации данных цифровой подписи

Example: The example shows how to embed digital signature based on provided password into image pixel data.

String imageFilePath = "ball.png";
String password = "veryStr0ngPassword";
try (Image image = Image.load(imageFilePath))
{
    image.embedDigitalSignature(password);
    image.save(outputPath);
}

analyzePercentageDigitalSignature(String password)

public int analyzePercentageDigitalSignature(String password)

Вычисляет процентное сходство между извлечёнными данными и оригинальным паролем.

Parameters:

ПараметрТипОписание
парольjava.lang.StringПароль, используемый для извлечения встроенных данных.

Returns: int - Значение процента схожести.

isDigitalSigned(String password, int percentageThreshold)

public boolean isDigitalSigned(String password, int percentageThreshold)

Выполняет быструю проверку, определяющую, подписано ли изображение цифровой подписью, используя предоставленный пароль и порог.


Этот метод обеспечивает самое быстрое обнаружение, используя GetSignPercentage. Как только извлечённые данные достигают указанного порога, дальнейшие шаги извлечения, направленные на повышение точности обнаружения, пропускаются.

Parameters:

ПараметрТипОписание
парольjava.lang.StringПароль для проверки подписи.
percentageThresholdintПорог (в процентах)[0-100], определяющий, считается ли изображение подписанным. Если не указано, будет применён порог по умолчанию (75).

Returns: boolean - True, если изображение подписано, иначе false.