java 读取网络图片并设置指定尺寸写入
java 读取网络图片并设置指定尺寸写入
岁月静好I 发表于11个月前
java 读取网络图片并设置指定尺寸写入
  • 发表于 11个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

package com.boya.util;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;

import static java.lang.System.out;

/**
 * Created by nrj on 2017/7/3.
 */
public class ImageUrlDow {


    //获取图片   写入图片
    public static void getDoc(String httpUrl,int imgWidth,int imgHeight) throws IOException{

        //定义一个写入的url
        File f = new File("E://imgs");
        if (!f.exists()){//如果没有此文件夹  就创建
            f.mkdirs();
        }
        //定义一个获取图片的http地址  获取http的内容   ignoreContentType就是忽略ContextType的检查
        Document document = Jsoup.connect(httpUrl).ignoreContentType(true).get();
        //获取后缀为png和jpg的图片的元素集合
        Elements imgs = document.select("img[src~=(?i)\\.(png|jpe?g)]");
        for (Element element:imgs){
            //获取到图片的地址
            String src = element.attr("src");
            //获取图片的后缀名字
            String imageName = src.substring(src.lastIndexOf("/"),src.length());
            //判断有没有http://请求头(百度没有) 要强制添加上
            Boolean s = src.contains("http");
            if (s == false){
                src = "http:"+src;
            }
            //连接url
            URL url = new URL(src);
            URLConnection uri = url.openConnection();
            //获取数据流
            InputStream inputStream = uri.getInputStream();
            //写入流
            OutputStream outputStream = new FileOutputStream(new File("E://imgs" ,imageName));

            Image img = ImageIO.read(inputStream);
            BufferedImage image = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_INT_BGR);
            image.getGraphics().drawImage(img, 0, 0, imgWidth, imgHeight, null);
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);
            encoder.encode(image);
            outputStream.flush();
            inputStream.close();
            outputStream.close();
        }

    }
    public static void main(String[] args) throws IOException{
        new ImageUrlDow().getDoc("https://www.baidu.com",300,180);
    }
}
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 3
博文 16
码字总数 19791
×
岁月静好I
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: