在asp.net中标准化jpeg大小

我正在为所有员工显示SQL Server数据库中的图像。 当这些图像存储在数据库中时,它们以不同的大小存储。 一个尺寸较小,另一个尺寸较大。

当我说尺寸时,我指的是宽度和高度。

当我在aspx页面中显示它时,我希望以300X250尺寸显示

我怎样才能做到这一点? 如果我设置图像控制高度和宽度,图像会失真。

请帮忙

看看ImageResizer.net。 它拥有您需要的一切,包括用于SQL Server集成的代码示例和保留宽高比的裁剪:

http://imageresizing.net/

最受欢迎的function是免费和开源:

  • resize,裁剪,旋转,翻转
  • 边框,阴影,填充,背景颜色
  • 可调节的Jpeg压缩。 多页tiff查看
  • 动画GIF帧选择。 全面的实时诊断
  • 基本的GIF和PNG编码
  • 梯度生成

如果设置300×250尺寸时图像失真,可能是因为纵横比不同。 尝试设置宽度或高度。

关于你的问题,你可以做几件事,

  1. 你可以使用算法调整图像大小,同时保持高度之间的raito。 您需要为旧图像和每个新图像运行它。 这篇文章是为了帮助您入门: http : //www.codeproject.com/Articles/13192/Image-Resizing-Maintaining-Height-Width-Ratio

  2. 您可以在已存储在数据库中的所有图像上运行代码,如果大于允许的限制,则可以裁剪它们。 并为新上传的图像放置相同的裁剪机制。

  3. 在显示图像时,您可以检查高度/宽度,只有在超出理想限制时才将其缩小。

对于所有方法,如果图像的高度/宽度小于您想要的那些,那么您只需要保留它们,否则它们会变形。

另外,我确实想告诉你,放置图像,就此而言,数据库中的任何其他文件都是一种不好的做法:(这是内存上的开销。更好的做法是把它放在文件系统中,你可以谷歌进一步查找这种方法的优点。

  1. 在HTML中,您应指定文件的实际高度和宽度。

    如果不这样做,图像可能会扭曲,和/或使用“锯齿”渲染。

  2. 如果你真的想要制作300×250的图像,那么你需要使用像Gimp ,Photoshop或ImageMagick这样的工具来resize和/或将其裁剪到所需的高度和宽度。