mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-09-12 17:52:13 +02:00
minor improvement: Change FakeScanRequest and FakeScanController to use enums for quality, rotation, and colorspace. This resolves warning about deprecated API usage
This commit is contained in:
parent
bfd273c8a4
commit
5b657fdfd7
@ -58,10 +58,10 @@ public class FakeScanController {
|
|||||||
|
|
||||||
// Apply preset first if needed
|
// Apply preset first if needed
|
||||||
if (!request.isAdvancedEnabled()) {
|
if (!request.isAdvancedEnabled()) {
|
||||||
switch (request.getQuality().toLowerCase()) {
|
switch (request.getQuality()) {
|
||||||
case "high" -> request.applyHighQualityPreset();
|
case high -> request.applyHighQualityPreset();
|
||||||
case "medium" -> request.applyMediumQualityPreset();
|
case medium -> request.applyMediumQualityPreset();
|
||||||
case "low" -> request.applyLowQualityPreset();
|
case low -> request.applyLowQualityPreset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ public class FakeScanController {
|
|||||||
float noise = request.getNoise();
|
float noise = request.getNoise();
|
||||||
boolean yellowish = request.isYellowish();
|
boolean yellowish = request.isYellowish();
|
||||||
int resolution = request.getResolution();
|
int resolution = request.getResolution();
|
||||||
String colorspace = request.getColorspace();
|
FakeScanRequest.Colorspace colorspace = request.getColorspace();
|
||||||
|
|
||||||
try (PDDocument document = pdfDocumentFactory.load(file)) {
|
try (PDDocument document = pdfDocumentFactory.load(file)) {
|
||||||
PDDocument outputDocument = new PDDocument();
|
PDDocument outputDocument = new PDDocument();
|
||||||
@ -87,7 +87,7 @@ public class FakeScanController {
|
|||||||
|
|
||||||
// 1. Convert to grayscale or keep color
|
// 1. Convert to grayscale or keep color
|
||||||
BufferedImage processed;
|
BufferedImage processed;
|
||||||
if ("grayscale".equalsIgnoreCase(colorspace)) {
|
if (colorspace == FakeScanRequest.Colorspace.grayscale) {
|
||||||
processed =
|
processed =
|
||||||
new BufferedImage(
|
new BufferedImage(
|
||||||
image.getWidth(),
|
image.getWidth(),
|
||||||
|
@ -12,33 +12,42 @@ import lombok.EqualsAndHashCode;
|
|||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
public class FakeScanRequest {
|
public class FakeScanRequest {
|
||||||
|
public enum Quality {
|
||||||
|
low,
|
||||||
|
medium,
|
||||||
|
high
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Rotation {
|
||||||
|
none,
|
||||||
|
slight,
|
||||||
|
moderate,
|
||||||
|
severe
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Colorspace {
|
||||||
|
grayscale,
|
||||||
|
color
|
||||||
|
}
|
||||||
|
|
||||||
@Schema(
|
@Schema(
|
||||||
description = "PDF file to process",
|
description = "PDF file to process",
|
||||||
required = true,
|
requiredMode = Schema.RequiredMode.REQUIRED,
|
||||||
type = "string",
|
type = "string",
|
||||||
format = "binary")
|
format = "binary")
|
||||||
@NotNull(message = "File input is required")
|
@NotNull(message = "File input is required")
|
||||||
private MultipartFile fileInput;
|
private MultipartFile fileInput;
|
||||||
|
|
||||||
@Schema(
|
@Schema(description = "Scan quality preset", example = "high")
|
||||||
description = "Scan quality preset",
|
|
||||||
example = "high",
|
|
||||||
allowableValues = {"low", "medium", "high"})
|
|
||||||
@NotNull(message = "Quality is required")
|
@NotNull(message = "Quality is required")
|
||||||
private String quality = "high";
|
private Quality quality = Quality.high;
|
||||||
|
|
||||||
@Schema(
|
@Schema(description = "Rotation preset", example = "none")
|
||||||
description = "Rotation preset",
|
|
||||||
example = "none",
|
|
||||||
allowableValues = {"none", "slight", "moderate", "severe"})
|
|
||||||
@NotNull(message = "Rotation is required")
|
@NotNull(message = "Rotation is required")
|
||||||
private String rotation = "slight";
|
private Rotation rotation = Rotation.slight;
|
||||||
|
|
||||||
@Schema(
|
@Schema(description = "Colorspace for output image", example = "grayscale")
|
||||||
description = "Colorspace for output image",
|
private Colorspace colorspace = Colorspace.grayscale;
|
||||||
example = "grayscale",
|
|
||||||
allowableValues = {"grayscale", "color"})
|
|
||||||
private String colorspace = "grayscale";
|
|
||||||
|
|
||||||
@Schema(description = "Border thickness in pixels", example = "20")
|
@Schema(description = "Border thickness in pixels", example = "20")
|
||||||
private int border = 20;
|
private int border = 20;
|
||||||
@ -75,21 +84,19 @@ public class FakeScanRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getQualityValue() {
|
public int getQualityValue() {
|
||||||
return switch (quality.toLowerCase()) {
|
return switch (quality) {
|
||||||
case "low" -> 30;
|
case low -> 30;
|
||||||
case "medium" -> 60;
|
case medium -> 60;
|
||||||
case "high" -> 100;
|
case high -> 100;
|
||||||
default -> 100;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRotationValue() {
|
public int getRotationValue() {
|
||||||
return switch (rotation.toLowerCase()) {
|
return switch (rotation) {
|
||||||
case "none" -> 0;
|
case none -> 0;
|
||||||
case "slight" -> 2;
|
case slight -> 2;
|
||||||
case "moderate" -> 5;
|
case moderate -> 5;
|
||||||
case "severe" -> 8;
|
case severe -> 8;
|
||||||
default -> 0;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user