小弟最近做了个图片服务器。类似与淘宝,可以通过request的url来进行图片的压缩和等比例缩放。
过程就是:
1.获取原图时直接response.WriteFile(图片物理路径);
2.获取压缩图片时,先判断该尺寸是否压缩过,没有压缩过的话进行压缩,并**保存为图片文件(压缩过的)**,然后response.WriteFile(图片物理路径);
这种方式在使用时没有什么问题。
但是突发奇想,为什么我要保存一次图片文件?
为何不用二进制来输出呢?
所以我又设计了一个逻辑:
1.获取原图时 response.OutputStream.Write(图片转的字节, 0, 长度);
2.获取压缩图片时,先压缩处理,然后转为二进制流来输出。
也是成立的,因为反应都是毫秒级,我无法判断哪种更合理一点。
主要是第一种会有一个保存的过程,但是之后只需要调取就可以了。
第二种呢,每次都要进行一次压缩