ImageRequester.java 2.11 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.sleng.FXGServer
 *  com.scene7.is.sleng.ImageAccess
 *  com.scene7.is.sleng.ImageAccessException
 *  com.scene7.is.sleng.ImageServer
 *  com.scene7.is.util.MimeTypeEnum
 *  com.scene7.is.util.Size
 *  com.scene7.is.util.SizeInt
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 */
package com.scene7.is.ps.provider.util;

import com.scene7.is.ps.provider.SlengCompiler;
import com.scene7.is.ps.provider.util.ImageRequesterAbstract;
import com.scene7.is.sleng.FXGServer;
import com.scene7.is.sleng.ImageAccess;
import com.scene7.is.sleng.ImageAccessException;
import com.scene7.is.sleng.ImageServer;
import com.scene7.is.util.MimeTypeEnum;
import com.scene7.is.util.Size;
import com.scene7.is.util.SizeInt;
import java.io.DataOutputStream;
import java.io.IOException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class ImageRequester
extends ImageRequesterAbstract {
    @NotNull
    private final Size sizeLimit;

    public ImageRequester(@NotNull byte[] code, @NotNull MimeTypeEnum mimeType, @NotNull Size sizeLimit, @Nullable SlengCompiler compiler, boolean optimize, ImageServer imageServer, FXGServer fxgServer) {
        super(code, mimeType, compiler, optimize, imageServer, fxgServer);
        this.sizeLimit = sizeLimit;
    }

    @NotNull
    @Override
    public byte[] getPixels(@NotNull ImageAccess imageAccess) throws ImageAccessException {
        SizeInt rect = imageAccess.getSize();
        if (rect.width == 0 || rect.height == 0) {
            throw new ImageAccessException(10, "Image result is empty", null);
        }
        if ((double)rect.width > this.sizeLimit.width || (double)rect.height > this.sizeLimit.height) {
            throw new ImageAccessException(10, "Maximum image size exceeded: Limit is " + (Object)this.sizeLimit + ", Actual image dimension is " + rect.width + "x" + rect.height, null);
        }
        return imageAccess.getRaw();
    }

    @Override
    public void updateDigest(@NotNull DataOutputStream out) throws IOException {
    }
}