下载图片但图片大小在 kotlin 中不正确
download image but the size of image is not correct in kotlin
我在下载图片时发现了一个惊人的问题。
图片的url为http://www.xbiquge.la/files/article/image/50/50353/50353s.jpg
我用代码下载的时候可以在chrome.but中打开保存,但是失败了
图片查看器打不开
注意:错误的图片小于正确的图片文件's.And其他网站的其他图片是可以的。
不知道有什么帮助happen.Please,谢谢提前
以下是我的代码
val imgUrl = "http://www.xbiquge.la/files/article/image/50/50353/50353s.jpg"
val conn = URL(imgUrl).openConnection()
val bytes = conn.getInputStream().readBytes()
File("D:\test.jpg").writeBytes(bytes)
我也尝试用java下载image.it也失败了...
URL url = new URL("http://www.xbiquge.la/files/article/image/50/50353/50353s.jpg");
URLConnection connection=url.openConnection();
InputStream inputStream = connection.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(new File("d:\download.jpg")));
int c;
byte[] temp = new byte[1024 * 2];
while ((c = bufferedInputStream.read(temp)) != -1) {
bufferedOutputStream.write(temp,0,c);
}
bufferedOutputStream.close();
inputStream.close();
看起来这里回答的问题是:
我认为您需要指定图像的保存格式和压缩类型。
我找到了正确的解决方案。
原因是文件是gzip文件。
必须使用以下代码才能下载。
val openConnection = URL(url).openConnection()
//if the image file is gzip
val bytes = if (openConnection.contentEncoding == "gzip") {
GZIPInputStream(openConnection.getInputStream()).readBytes()
} else {
openConnection.getInputStream().readBytes()
}
val file = File("e:\text.jpg")
file.writeBytes(bytes)
我在下载图片时发现了一个惊人的问题。
图片的url为http://www.xbiquge.la/files/article/image/50/50353/50353s.jpg
我用代码下载的时候可以在chrome.but中打开保存,但是失败了
图片查看器打不开
注意:错误的图片小于正确的图片文件's.And其他网站的其他图片是可以的。
不知道有什么帮助happen.Please,谢谢提前
以下是我的代码
val imgUrl = "http://www.xbiquge.la/files/article/image/50/50353/50353s.jpg"
val conn = URL(imgUrl).openConnection()
val bytes = conn.getInputStream().readBytes()
File("D:\test.jpg").writeBytes(bytes)
我也尝试用java下载image.it也失败了...
URL url = new URL("http://www.xbiquge.la/files/article/image/50/50353/50353s.jpg");
URLConnection connection=url.openConnection();
InputStream inputStream = connection.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(new File("d:\download.jpg")));
int c;
byte[] temp = new byte[1024 * 2];
while ((c = bufferedInputStream.read(temp)) != -1) {
bufferedOutputStream.write(temp,0,c);
}
bufferedOutputStream.close();
inputStream.close();
看起来这里回答的问题是:
我认为您需要指定图像的保存格式和压缩类型。
我找到了正确的解决方案。 原因是文件是gzip文件。 必须使用以下代码才能下载。
val openConnection = URL(url).openConnection()
//if the image file is gzip
val bytes = if (openConnection.contentEncoding == "gzip") {
GZIPInputStream(openConnection.getInputStream()).readBytes()
} else {
openConnection.getInputStream().readBytes()
}
val file = File("e:\text.jpg")
file.writeBytes(bytes)