mirror of https://github.com/halo-dev/halo
[release-2.19] refactor: preserve original image if smaller than requested thumbnail size (#6583)
This is an automated cherry-pick of #6582 /assign ruibaby ```release-note 当生成缩略图时如果原图尺寸小于请求尺寸则返回原图以保持其质量 ```pull/6588/head v2.19.1
parent
32f563bd30
commit
30d054a009
|
@ -1,5 +1,7 @@
|
|||
package run.halo.app.core.attachment;
|
||||
|
||||
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
@ -74,10 +76,14 @@ public class ThumbnailGenerator {
|
|||
throw new UnsupportedOperationException(
|
||||
"Unsupported image format for: " + formatNameOpt.orElse("unknown"));
|
||||
}
|
||||
var thumbnail = Scalr.resize(img, Scalr.Method.AUTOMATIC, Scalr.Mode.FIT_TO_WIDTH,
|
||||
size.getWidth());
|
||||
var formatName = formatNameOpt.orElse("jpg");
|
||||
var thumbnailFile = getThumbnailFile(formatName);
|
||||
if (img.getWidth() <= size.getWidth()) {
|
||||
Files.copy(tempImagePath, thumbnailFile.toPath(), REPLACE_EXISTING);
|
||||
return;
|
||||
}
|
||||
var thumbnail = Scalr.resize(img, Scalr.Method.AUTOMATIC, Scalr.Mode.FIT_TO_WIDTH,
|
||||
size.getWidth());
|
||||
ImageIO.write(thumbnail, formatName, thumbnailFile);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue