使用 HTTP 请求仅下载 JPG 的一部分
Download Only A Part of a JPG with HTTP request
使用 HTTP header Range
客户端只能从服务器请求特定范围的字节。
GET myfile.jpg HTTP/1.1
"http://myhost"
Range=bytes=1000-1200
如果服务器支持此响应功能,甚至可能通过 Accept-Range
header 显示,上述请求将 return 只有从字节 1000 开始的 200 字节。
是否可以使用此方法从JPG图像中获取可用的部分?假设实际的 JPG 尺寸为 800x1197 像素。要仅请求像素介于 200x200 和 400x400 之间的子图像,必须做什么?
对我来说,它似乎只能接收水平切割的图像切片。但这已经比获取完整的图像文件要好。因此,在上面的示例中,我会说可以尝试下载:从 200 (y-axis) 到 400 (y-axis) 的切片,然后在客户端相应地裁剪结果。
假设我们已经知道文件的 content-length 及其实际图像大小,这可能已由前面的 HTTP 请求确定:
内容长度(以字节为单位):88073
jpg 大小:800x1197
我必须为这张图片请求哪个字节范围?我假设 JPG 有一些元数据,也必须考虑在内。还是 jpg 的压缩使这种尝试变得不可能?如果最终剪出的内容不包含原始文件中的任何元数据就可以了。
但是仍然可能需要有一个初始请求,它从一开始就需要一些字节来希望获取元数据。并基于此可以确定实际字节范围。
如果有人能给我提示如何处理这个问题,那就太好了。
JPEG 在一次或多次扫描中对压缩数据进行编码。扫描不表明它们的长度。您必须实际解码才能到达扫描的结尾。扫描跨越整个图像。
如果 JPEG 流是渐进编码的,您可以一次读取流块,对扫描进行解码,更新输出图像,并获得连续细化的图像视图。
使用 HTTP header Range
客户端只能从服务器请求特定范围的字节。
GET myfile.jpg HTTP/1.1
"http://myhost"
Range=bytes=1000-1200
如果服务器支持此响应功能,甚至可能通过 Accept-Range
header 显示,上述请求将 return 只有从字节 1000 开始的 200 字节。
是否可以使用此方法从JPG图像中获取可用的部分?假设实际的 JPG 尺寸为 800x1197 像素。要仅请求像素介于 200x200 和 400x400 之间的子图像,必须做什么?
对我来说,它似乎只能接收水平切割的图像切片。但这已经比获取完整的图像文件要好。因此,在上面的示例中,我会说可以尝试下载:从 200 (y-axis) 到 400 (y-axis) 的切片,然后在客户端相应地裁剪结果。
假设我们已经知道文件的 content-length 及其实际图像大小,这可能已由前面的 HTTP 请求确定:
内容长度(以字节为单位):88073 jpg 大小:800x1197
我必须为这张图片请求哪个字节范围?我假设 JPG 有一些元数据,也必须考虑在内。还是 jpg 的压缩使这种尝试变得不可能?如果最终剪出的内容不包含原始文件中的任何元数据就可以了。
但是仍然可能需要有一个初始请求,它从一开始就需要一些字节来希望获取元数据。并基于此可以确定实际字节范围。
如果有人能给我提示如何处理这个问题,那就太好了。
JPEG 在一次或多次扫描中对压缩数据进行编码。扫描不表明它们的长度。您必须实际解码才能到达扫描的结尾。扫描跨越整个图像。
如果 JPEG 流是渐进编码的,您可以一次读取流块,对扫描进行解码,更新输出图像,并获得连续细化的图像视图。