Thumbnailsフレームワークピクチャサムネイル処理

2318 ワード

最近、師匠と一緒に需要を作り、最適化需要に割り当てられ、ユーザーがアップロードした画像をサムネイルでアリクラウドサーバーに保存し、アドレスをデータベースに保存した.
Thumbnailsフレームワークを用いて画像をサムネイル処理した.
このフレームワークを初めて使ったので、とても役に立つブログを参考にしました.
わかりやすく書かれていますが、このブログは主に自分がこの機能を実現する手順と問題の解決方法を記録しています.
ステップ1:jarパッケージのインポート

   net.coobird
   thumbnailator
   0.4.8

第二部:アリクラウドにアップロードする方法は、以前の同僚が書いた方法を使用しています.
    /***
     *  
     *
     * @param picture  
     * @param length  
     * @param width  
     * @param output  
     * @return  
     * @author dongwei.
     * @date 2018/06/06.
     */
    @Override
    public String abbreviations(String picture, Integer length, Integer width, Float output) {
        Random random = new Random();
        File file = new File(random.nextInt(10000)+"abbreviatedPicture.jpg");
        String s = AliyunOSSUtil.aliyunUrl + picture;
        try {
            Thumbnails.of(new URL(s)).size(length, width).outputQuality(output).toFile(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        ImgUtil util = new ImgUtil();
        String alikey = util.storageLocalAliImg(file.getAbsolutePath());
        return alikey;
    }

 
    /**
     *  
     */
    public String storageLocalAliImg(String fileurl) {
        //  
        String alikey = "news-" + MathUtil.getTimeNumber() + ".jpg";
        //  
        if (OSSObjectSample.storageAliImg(OSSObjectSample.aliimg_bucket, alikey, fileurl)) {
            //  
            File file = new File(fileurl);
            file.delete();
            return alikey;
        }
        return null;
    }

ここでThumbnails.of()この方法はとても重要で、前にブログを参考にする时、使ったのは地元のピクチャーで、略した后のピクチャーも地元に置いて、方法のテストを书いた时やっと1つのURLのアドレスが入ってくることを発见して、しかしofこの方法はこのアドレスを1つの相対的な経路のアドレスとして、自动的に経路の前にプロジェクトの所在する地元の経路をプラスして、それから照会して、最后に长い间振り回されて、多くのブログを见て、いずれも1つのベースのThumbnailsフレームワークで使用され、使用されているのはすべてローカルのピクチャで、最後にソースコードを見てやっとof()という方法が5回もリロードされていることに気づきました.そのうち2つはストリームオブジェクトで、1つはストリーミング、1つはファイル、1つはURLアドレスで、私が転送したのはウェブページのパスですが、URLで包装されていないので、毎回Fileタイプとされているので、ローカルに行ってこのピクチャを探しました.結果は自然に見つからない.
だから、ofという方法を使うときは、具体的にどの方法を使っているのか、特に注意しなければなりません.
他のいくつかの方法については、ネット上に参考資料がたくさんあるので、言わないでください.