栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

java 字节流 图片

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 字节流 图片

目前从c#项目转到java,有一个功能是根据图片路径返回图片的字节流,实现如下:

public static string GetImageByUrl(string imagePath)

{

System.Net.WebRequest webreq = System.Net.WebRequest.Create(imagePath);

int port = TypeUtil.ToInt32(CommonUtil.GetAppSetting("ProxyPort"));

webreq.Proxy = new WebProxy(CommonUtil.GetAppSetting("Proxy"), port);

// 超时时间 10s

webreq.Timeout = 10000;

System.Net.WebResponse webres = webreq.GetResponse();

System.IO.Stream stream = webres.GetResponseStream();

System.Drawing.Image img1 = System.Drawing.Image.FromStream(stream);

System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(img1);

return ImgToBase64String(bmp);

}

//图片转为base64编码的字符串

public static string ImgToBase64String(Bitmap bmp)

{

try

{

MemoryStream ms = new MemoryStream();

bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

byte[] arr = new byte[ms.Length];

ms.Position = 0;

ms.Read(arr, 0, (int)ms.Length);

ms.Close();

return Convert.ToBase64String(arr);

}

catch (Exception ex)

{

return null;

}

}

用java进行重写如下

public static byte[] getImageFromURL(String urlPath) {

byte[] data = null;

InputStream inputStream = null;

HttpURLConnection conn = null;

try {

URL url = new URL(urlPath);

conn = (HttpURLConnection) url.openConnection(getProxy());

conn.setDoInput(true);

conn.setRequestMethod(HttpMethod.GET.name());

conn.setConnectTimeout(10000);

inputStream = conn.getInputStream();

if (conn.getResponseCode() == 200) {

data = readInputStream(inputStream);

} else {

data = null;

}

} catch (MalformedURLException e) {

CLogger.error("getImageFromURL", e);

} catch (IOException e) {

CLogger.error("getImageFromURL", e);

} finally {

try {

if (inputStream != null) {

inputStream.close();

}

} catch (IOException e) {

CLogger.error("getImageFromURL", e);

}

conn.disconnect();

}

return data;

}

public static byte[] readInputStream(InputStream is) {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int length = -1;

try {

while ((length = is.read(buffer)) != -1) {

baos.write(buffer, 0, length);

}

baos.flush();

} catch (IOException e) {

CLogger.error("readInputStream", e);

}

byte[] data = baos.toByteArray();

try {

is.close();

baos.close();

} catch (IOException e) {

CLogger.error("readInputStream", e);

}

return data;

}

final byte[] image = getImageFromURL(request.getImageUrl());

String imageData = "";

if (ArrayUtil.isNotEmpty(image)) {

//base64加密

imageData = Base64.encodeBase64String(image);

}

最后的结果总是不同,想问一下我该如何写java方法呢?谢谢各位

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号