java图片转二进制

#####本地图片转二进制数组

  /**
	 * 图片转二进制数组
	 * @param imgType 
	 * @param url
	 * @return
	 */
	public  static byte[] getImageBinary(String path, String imgType) {
			File f = new File(path);
			BufferedImage bi;
			try {
				bi = ImageIO.read(f);
				ByteArrayOutputStream baos = new ByteArrayOutputStream();
				ImageIO.write(bi, imgType, baos);  //经测试转换的图片是格式这里就什么格式,否则会失真
				byte[] bytes = baos.toByteArray();
	 
				return bytes;
			} catch (IOException e) {
				e.printStackTrace();
			}
			return null;

	}

#####二进制数组转字符串

	/**
	 * 二进制数组转字符串
	 * @param path
	 * @return 
	 */
	public static String byteToString(byte[] b) {
	      StringBuffer sb = new StringBuffer();  
	      String stmp = "";  
	      for (int i = 0; i < b.length; i++) {  
	       stmp = Integer.toHexString(b[i] & 0XFF);  
	       if (stmp.length() == 1){  
	           sb.append("0" + stmp);  
	       }else{  
	           sb.append(stmp);  
	       }  
	      }
	      String sss = sb.toString();
	      return sss;
	}

#####通过图片的链接获取二进制数组

	/**
	 * 通过图片链接获取二进制数组
	 * @param URLName
	 * @param type
	 * @return 二进制的字符串
	 */
	public static String getImgeHexString(String URLName,String type) {   
	    String res = null;   
	    try {   
	        int HttpResult = 0; // 服务器返回的状态   
	        URL url = new URL(URLName); // 创建URL   
	        URLConnection urlconn = url.openConnection(); // 试图连接并取得返回状态码   
	        ((HttpURLConnection) urlconn).setRequestMethod("POST");
	        urlconn.setConnectTimeout(6 * 1000);
	        urlconn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");
		       
	        urlconn.connect();   
	        HttpURLConnection httpconn = (HttpURLConnection) urlconn;   
	        HttpResult = httpconn.getResponseCode();   
//	        System.out.println(HttpResult);   
	        if (HttpResult != HttpURLConnection.HTTP_OK) // 不等于HTTP_OK则连接不成功   
	            System.out.print("fail");   
	        else {   
	            BufferedInputStream bis = new BufferedInputStream(urlconn.getInputStream());   
	  
	            BufferedImage bm = ImageIO.read(bis);   
	            ByteArrayOutputStream bos = new ByteArrayOutputStream();   
	            ImageIO.write(bm, type, bos);   
	            bos.flush();   
	            byte[] data = bos.toByteArray();   
	  
	            res = byte2hex(data);   
	            bos.close();   
	        }   
	    } catch (Exception e) {   
	        e.printStackTrace();   
	    }   
	    return res;   
	}   
	/**  
	 * 格式化byte  
	 *   
	 * @param b  
	 * @return  
	 */  
	public static String byte2hex(byte[] b) {   
	    char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',   
	            'B', 'C', 'D', 'E', 'F' };   
	    char[] out = new char[b.length * 2];   
	    for (int i = 0; i < b.length; i++) {   
	        byte c = b[i];   
	        out[i * 2] = Digit[(c >>> 4) & 0X0F];   
	        out[i * 2 + 1] = Digit[c & 0X0F];   
	    }   
	  
	    return new String(out);   
	}

===================== 2019-12-02分割线 ==========================

//需要导入的包
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.security.SecureRandom;

import javax.imageio.ImageIO;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值