我们有一个带有上传图像方法的WebService,这个方法接受一个TIFF的字节数组。
在客户端,TIFF加载Image.FromFile(path)
,然后保存到MemoryStream
。然后调用memoryStream.ToArray()
,这将生成一个在WebService请求中使用的字节数组。
目前我们有一个130 KB大的TIFF,但总请求大小几乎是10 MB。怎么会发生这种情况?这是因为Image.FromFile
方法将TIFF转换(缩小)为标准格式,因此压缩等会丢失吗?有没有更好的方法呢?
感谢。
答案 0 :(得分:2)
将tiff加载到图像中会删除TIFF的所有压缩。
如果你真的不需要将它加载到Image中,我只需将其作为任意文件读入内存并以这种方式发送字节数组。
答案 1 :(得分:1)
我还没有确认你所建议的内容(Image正在将tiff解压缩成更大的文件)实际上正在发生,尽管看起来很可能。但是,如果是这种情况,那么你不能只是将文件作为图像读入,而是作为二进制文件读取吗?
只需将文件读入就像是二进制文件一样,然后将其放入memoryStream中。然后解压缩应该没有任何问题。
答案 2 :(得分:1)
也许你可以使用WSE 3.0 MTOM,女巫是通过网络服务发送图像的最佳方式
您可以找到更多信息here