1

最初の例を Scalr で実装することは可能ですか?

私のコードは次のとおりです。

BufferedImage thumbnail = Scalr.resize(ImageIO.read(sourceFile), Scalr.Method.ULTRA_QUALITY, Scalr.Mode.FIT_TO_WIDTH,
                width, height, Scalr.OP_ANTIALIAS);
ImageIO.write(thumbnail, destinationfile.getExtension(), destinationfile);

私が望むのは、このような画像を受け取ることです: ここに画像の説明を入力青いバーは、色で塗りつぶしたいスペースです。

ありがとうございました

更新: Thumbnailatorで実装することは可能でしょうか?

4

2 に答える 2

1

誰もアイデアを持っていないので、私のソリューションを公開します... Scalr を使い続けることにしました (Thumbnailator の最後のバージョンはチェックしませんでしたが、以前のものは大きな画像で失敗しました)。最初にresizeメソッドを呼び出し、新しいサムネイルのサイズが指定されたサイズよりも大きい場合はcrop、サムネイルを中央でトリミングするメソッドを呼び出します。コードは次のとおりです。

BufferedImage thumbnail = Scalr.resize(sourceFile, Scalr.Method.ULTRA_QUALITY, Scalr.Mode.AUTOMATIC, destinationSize.width, destinationSize.height);
if (thumbnail.getWidth() > destinationSize.width)
    thumbnail = Scalr.crop(thumbnail, (thumbnail.getWidth() - destinationSize.width) / 2, 0, destinationSize.width, destinationSize.height);
else if (thumbnail.getHeight() > destinationSize.height) 
    thumbnail = Scalr.crop(thumbnail, 0, (thumbnail.getHeight() - destinationSize.height) / 2, destinationSize.width, destinationSize.height);

理想的ではありませんが、少なくともサムネイルの生成後に「ワイド」画像を処理します

于 2013-07-24T11:09:27.723 に答える