我想在屏幕上显示图像,并且必须调整其大小(高度和宽度)以适合屏幕(拉伸或缩小)。图像已保存到服务器,为1024 x 768(示例)。
所以,此刻,我这样做:
ImageUtilities.Dimension d =
ImageUtilities.ImageUtilities.GetImageSize(f.FullName);
var newD = ImageUtilities.ImageUtilities.GetResized(d.Height, d.Width, 520, 520);
Image1.Height = newD.Height;
Image1.Width = newD.Width;
所以,目前,我正在强迫我的图像适合800 x 800的方形尺寸(我考虑到肖像与风景,并使用比例来维持方面。
问题是,在低分辨率屏幕上,用户必须滚动一下才能到达图像的底部(我有一个关闭按钮)。在一个非常高的res scree上,我可以保持1024乘1024作为可用区域。
有没有办法获取屏幕res,并将这些参数带入我的代码隐藏方法(GetResized是一个返回新的高度和宽度的方法)?
我知道用户可能没有使用他的浏览器 - 这没关系。
答案 0 :(得分:3)
您可以定义图像大小(以百分比表示),使您从这些内容中解放出来。
答案 1 :(得分:1)
使用Javascript获取显示器屏幕分辨率,然后在javascript中更改图像大小,或将屏幕分辨率传递给后面的代码并使用C#更改图像大小。
答案 2 :(得分:0)
如果您需要有关屏幕分辨率的信息,可以使用window.screen
它具有以下属性:
Properties | Description
availHeight | Specifies the height of the screen, in pixels, minus interface
| features such as the taskbar in Windows.
availWidth | Specifies the width of the screen, in pixels, minus interface
| features such as the taskbar in Windows.
colorDepth | The bit depth of the color palette available for displaying images
| in bits per pixel.
height | The total height of the screen, in pixels.
pixelDepth | Display screen color resolution (bits per pixel). Firefox
| exclusive property.
width | The total width of the screen, in pixels.
答案 3 :(得分:0)
正如其他人提到的那样,最好在客户端而不是服务器端处理这种情况。我建议使用CSS样式或JavaScript。
更多信息:
答案 4 :(得分:0)
您是否考虑过创建自定义服务器控件,根据屏幕分辨率调整图像大小?以下示例将MaxWidth属性添加到Image控件,但您可以修改它以将最大宽度/高度设置为与屏幕分辨率成比例:
using System;
使用System.Web; 使用System.Web.UI.WebControls;
命名空间MyNameSpace { public class MaxWidthImage:Image { private int _MaxWidth;
public int MaxWidth
{
get
{
return _MaxWidth;
}
set
{
_MaxWidth = value;
}
}
protected override void OnPreRender(EventArgs e)
{
if (string.IsNullOrEmpty(ImageUrl)) return;
using (System.Drawing.Image MyImage =
System.Drawing.Image.FromFile
(HttpContext.Current.Server.MapPath(ImageUrl)))
{
int CurrentWidth = MyImage.Width;
if (MaxWidth != 0 && CurrentWidth > MaxWidth)
{
CurrentWidth = MaxWidth;
}
Attributes.Add("width", CurrentWidth.ToString());
}
}
} }
(来自http://evonet.com.au/extending-the-aspimage-control-to-set-a-maximum-width/)