C# 如何修改图片的储存大小,比如10MB改为5MB。 100

我有一些图片大小为70+MB大小的图片,我要显示在页面上,但是太大img标签无法显示出来,本来原图是tif格式的图像,现在已经改为JPG,现在就是想在后台修改改变图片的储... 我有一些图片大小为70+MB大小的图片,我要显示在页面上,但是太大img 标签无法显示出来,本来原图是tif格式的图像,现在已经改为JPG,现在就是想在后台修改改变图片的储存大小,尽量不要太降低图片的质量。 展开
 我来答
虎用95
2013-06-27 · TA获得超过431个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:75.1万
展开全部

你是指你希望“程序化”的自动伸缩图片大小吗?


你这个方案的确可以做,但是实现起来有点绕弯,其实目前各大网站做法是这么实现的:

  1. 准备2~3种同一个图片的不同大小格式(如完整尺寸70M,大尺寸500kb,小尺寸5kb)

  2. 当用户打开网页时,默认页面上显示的都是小尺寸的图片(一般用后缀区分:风景-small.jpg)

  3. 当用户希望查看大图时,实际上在弹出的窗口里显示的是中号图(例如:风景-big.jpg)

  4. 当用户希望下载原图时,则给出原图的URL(例如:风景-realsize.jpg)

当然如果为了一些特殊目的,文件名还可以经过特殊处理。


总之就是:其实你看到的大中小图片,在服务器端存储的是不同的图片文件。。。



--------------------------------- 华丽的分割线 ---------------------------------


话说回来,如果动态调节图片大小本来就是你要实现的程序逻辑,那么实现方法需要你对下列知识有足够的理解:

1. 磁盘IO流

2. 画布和bmp、jpg等图片格式的基本知识(包括图片尺寸大小和图片质量以及文件大小的关系)

3. 通过后台cs文件动态控制html页面元素的知识


如果你这些都会,那么实现方法是这样的:

  1. 获取大图片文件的句柄

  2. 计算显示在网页上的“小图片”的【文件大小】(如你需要的3m)

  3. 算出源图片和将要显示在页面上的这个小图文件大小的比例(例如你说的10m:5m)

  4. 因此获得小图是大图画布尺寸的50%(在不改变格式和质量的前提下)

  5. 按照计算出来的小图片的宽和高,创建一个新的画布(系统类库)

  6. 自己编写取样过程,或者用微软提供的类库将大图的内容【绘入】小图的画布中

  7. 将生成的小图画布保存到磁盘中,放在客户浏览器也能访问的目录,可以起个随机的名字

  8. 利用后台cs代码动态的把页面上所需要显示这张图片的位置的html代码改为小图的文件名和URL路径

  9. 完成


这种方式就是你想要的【在网页显示时候调整图片大小】的实现方式。。。。


除非你老板或者你的作业明确要求实现这种逻辑,劝你还是用分割线上面的,目前比较通用的做法比较好。。。。。

追问
首先谢谢你回答, 我的图片像素是 16143 × 1566  你没错,确实是这么大的,原图是70MB  我现在用PS压缩到了5MB,但是项目要求是上传图片后直接显示在页面上的,所以我不可能要用户去手动用PS压缩图片的,所以我只能依靠代码来修改图片的储存大小,用代码吧图片的体积缩小。
追答
对。所以你要实现”动态生成小图“的代码。而通过HTML代码控制的img标签显示大小只是页面上的”视觉“压缩罢了,实际上后台传输仍然要传大图。

因此你需要1. 上传大图; 2. 后台服务器动态保存一个小图; 3.前台通过jQuery等取得生成的小图URL,并显示出img标签。。。

这样的方式来实现。目前除了自己动手写,似乎有flash的解决方案。你看新浪微博就用的flash上传解决方案。
百事牛
2024-10-28 广告
作为深圳奥凯丰科技有限公司的一员,对于zip删除文件的处理,我们可以这样回答:要打开zip压缩包中删除的文件,实际上需要首先明确文件是否真正从压缩包中移除了。如果文件已从zip中删除,那么就无法直接打开,除非有备份。但如果是指解压后删除了某... 点击进入详情页
本回答由百事牛提供
zhuxinjun1982
2013-06-27 · 知道合伙人互联网行家
zhuxinjun1982
知道合伙人互联网行家
采纳数:2145 获赞数:8330
毕业于上海行健职业学院,大专学历;2007~2009在北大青鸟进修网络编程课目。现任网络主管,平时爱好上网。

向TA提问 私信TA
展开全部

PS直接存储为WEB所用格式就可以压缩图片大小并且保证质量。还有就是你要按照网页的比例来定义图片的大小,如果网页的比例是800*600,那你图片的宽度正常情况下调整到宽度1000最多了,不要一张高清的图片,调整都不调整就直接放到网页上用,这样肯定是不行的。调整好以后存储WEB格式即可。


更多追问追答
追问
我是想在上传图片的后台处理代码中就要修改。
追答
晕,不好意思,误解你的意思了。
没做过这样的功能,我一般都是直接调整好再上传的。:(
我觉得你其实只要做到限制图片的大小就行了,如果上传的时候图片超过一定大小就不允许上传。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuanyeKJ
2013-06-27
知道答主
回答量:49
采纳率:0%
帮助的人:27.4万
展开全部
网上有生成缩略图改变的代码,搜搜就能找打
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式