日期:2014-05-17  浏览次数:20453 次

图片轮转,图片高度和宽度不统一,如何控制


图片从数据库读取,高度和宽度不同,弄 图片轮转就会出现这样的效果,
JScript code

 function read() {
             a = "AjaxDataPage/GetIndexPic.aspx";
             b = "";
             c = "get";
             var ajax = new AJAXTRANSA(a, { enabled: true });
             ajax.SubValue(a, b, c);
             ajax.AJAX_SUBMIT();

             ajax.Return = function (a) {
                 var obj = a.responseText;
                 alert(obj);
                 strimag = obj.split("<")[0];
  


strimag 是js 得到的图片,如何改变图片的高度和宽度为统一的??

------解决方案--------------------
先等比例缩放成同一个大小嘛
------解决方案--------------------
这种最好用大小一样的图片,这样才好看。
------解决方案--------------------


你可以把取出来的图片经过处理之后再显示

比如生成缩略图



C# code
/// <summary>
/// 获取一个图片按等比例缩小后的大小。
/// </summary>
/// <param name="maxWidth">需要缩小到的宽度</param>
/// <param name="maxHeight">需要缩小到的高度</param>
/// <param name="imageOriginalWidth">图片的原始宽度</param>
/// <param name="imageOriginalHeight">图片的原始高度</param>
/// <returns>返回图片按等比例缩小后的实际大小</returns>
public static Size GetNewSize(int maxWidth, int maxHeight, int imageOriginalWidth, int imageOriginalHeight)
{
    double w = 0.0;
    double h = 0.0;
    double sw = Convert.ToDouble(imageOriginalWidth);
    double sh = Convert.ToDouble(imageOriginalHeight);
    double mw = Convert.ToDouble(maxWidth);
    double mh = Convert.ToDouble(maxHeight);

    if (sw < mw && sh < mh)
    {
        w = sw;
        h = sh;
    }
    else if ((sw / sh) > (mw / mh))
    {
        w = maxWidth;
        h = (w * sh) / sw;
    }
    else
    {
        h = maxHeight;
        w = (h * sw) / sh;
    }

    return new Size(Convert.ToInt32(w), Convert.ToInt32(h));
}

------解决方案--------------------
C# code

 ///<summary>
        /// 生成缩略图
        /// </summary>
        /// <param name="originalImagePath">源图路径(物理路径)</param>
        /// <param name="thumbnailPath">缩略图路径(物理路径)</param>
        /// <param name="width">缩略图宽度</param>
        /// <param name="height">缩略图高度</param>
        /// <param name="mode">生成缩略图的方式</param>
        /// <param name="outthumbnailPath"></param>
        private void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode, out string outthumbnailPath)
        {
            System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);

            int towidth = width;
            int toheight = height;

            int x = 0;
            int y = 0;
            int ow = originalImage.Width;
            int oh = originalImage.Height;

            switch (mode)
            {
                case "HW"://指定高宽缩放(可能变形)                
                    break;
                case "W"://指定宽,高按比例                    
                    toheight = originalImage.Height * width / originalImage.Width;
                    break;
                case "H"://指定高,宽按比例
                    towidth = originalImage.Width * height / originalImage.Height;
                    break;
                case "Cut"://指定高宽裁减(不变形)                
                    if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
                    {
                        oh = originalImage.Height;
                        ow = originalImage.Height * towid