我正在为所有员工显示来自 SQL Server 数据库的图像。当这些图像存储在数据库中时,它们以不同的大小存储。一个尺寸较小,另一个尺寸较大。
当我说尺寸时,我指的是宽度和高度。
当我在 aspx 页面中显示它时,我想以 300X250 大小显示
我怎样才能做到这一点?如果我设置图像控件的高度和宽度,图像会失真。
请帮忙
看看 ImageResizer.net。它拥有您需要的一切,包括用于 SQL Server 集成和保留纵横比的裁剪的代码示例:
最受欢迎的功能是免费和开源的:
如果设置 300x250 尺寸时图像失真,可能是因为纵横比不同。尝试设置宽度或高度。
关于你的问题,你可以做几件事,
您可以使用算法来调整图像大小,同时保持高度之间的 raito。您需要为旧图像和每个新图像运行它。这是一篇让您入门的文章:http: //www.codeproject.com/Articles/13192/Image-Resizing-Maintaining-Height-Width-Ratio
您可以对已存储在数据库中的所有图像运行代码,如果大于允许的限制,则可以裁剪它们。并为新上传的图像放置相同的裁剪机制。
在显示图像时,您检查高度/宽度并仅在超出您所需的限制时将它们缩小。
对于所有方法,如果图像的高度/宽度小于您想要的高度/宽度,那么您只需将它们保持原样,否则它们会失真。
此外,我确实想告诉您,将图像以及就此而言,数据库中的任何其他文件都是不好的做法:(这是内存开销。更好的做法是将其放入文件系统中,您可以进一步谷歌查找这种方法的优点。
在您的 HTML 中,您应该指定文件的实际高度和宽度。
如果不这样做,图像可能会失真,和/或呈现“锯齿”。
如果您真的想制作 300x250 的图像,那么您需要使用The Gimp、Photoshop 或ImageMagick等工具来调整大小和/或裁剪到所需的高度和宽度。