WebP - Use lossless version where applicable

This commit is contained in:
Jindra Petřík
2025-09-06 16:15:52 +02:00
parent e58df81afa
commit 5d8d753c37
10 changed files with 12 additions and 6 deletions

View File

@@ -566,7 +566,7 @@ public class FrameExporter {
BufferedImage img = frameImages.next();
if (img != null) {
try (FileOutputStream fos = new FileOutputStream(f)) {
fos.write(WebPCodec.encodeImage(img, 100f));
fos.write(WebPCodec.encodeLosslessImage(img));
}
}
ret.add(f);

View File

@@ -129,7 +129,13 @@ public class ImageExporter {
BMPFile.saveBitmap(imageTag.getImageCached().getBufferedImage(), file);
} else if (ffileFormat == ImageFormat.WEBP) {
try (OutputStream fos = new BufferedOutputStream(new FileOutputStream(file))) {
fos.write(WebPCodec.encodeImage(imageTag.getImageCached().getBufferedImage(), 100f));
byte[] webPData;
if (originalFormat == ImageFormat.PNG || originalFormat == ImageFormat.GIF) {
webPData = WebPCodec.encodeLosslessImage(imageTag.getImageCached().getBufferedImage());
} else {
webPData = WebPCodec.encodeImage(imageTag.getImageCached().getBufferedImage(), 100f);
}
fos.write(webPData);
}
} else {
ImageHelper.write(imageTag.getImageCached().getBufferedImage(), ffileFormat, file);

View File

@@ -209,7 +209,7 @@ public class MorphShapeExporter {
ImageHelper.write(img.getBufferedImage(), ImageFormat.PNG, fileEnd);
} else if (settings.mode == MorphShapeExportMode.WEBP_START_END) {
try (FileOutputStream fos = new FileOutputStream(fileEnd)) {
fos.write(WebPCodec.encodeImage(img.getBufferedImage(), 100f));
fos.write(WebPCodec.encodeLosslessImage(img.getBufferedImage()));
}
} else {
BMPFile.saveBitmap(img.getBufferedImage(), fileEnd);

View File

@@ -141,7 +141,7 @@ public class ShapeExporter {
ImageHelper.write(img.getBufferedImage(), ImageFormat.PNG, file);
} else if (settings.mode == ShapeExportMode.WEBP) {
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(WebPCodec.encodeImage(img.getBufferedImage(), 100f));
fos.write(WebPCodec.encodeLosslessImage(img.getBufferedImage()));
}
} else {
BMPFile.saveBitmap(img.getBufferedImage(), file);