首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

图片轮转,图片高度和宽度不统一,怎么控制

2012-09-27 
图片轮转,图片高度和宽度不统一,如何控制图片从数据库读取,高度和宽度不同,弄 图片轮转就会出现这样的效果

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


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

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 * towidth / toheight;                        y = 0;                        x = (originalImage.Width - ow) / 2;                    }                    else                    {                        ow = originalImage.Width;                        oh = originalImage.Width * height / towidth;                        x = 0;                        y = (originalImage.Height - oh) / 2;                    }                    break;                default:                    break;            }            //新建一个bmp图片            System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);            //新建一个画板            Graphics g = System.Drawing.Graphics.FromImage(bitmap);            //设置高质量插值法            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;            //设置高质量,低速度呈现平滑程度            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;            //清空画布并以透明背景色填充            g.Clear(Color.Transparent);            //在指定位置并且按指定大小绘制原图片的指定部分            g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),             new Rectangle(x, y, ow, oh),             GraphicsUnit.Pixel);            try            {               //以jpg格式保存缩略图               bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);               outthumbnailPath = thumbnailPath;            }            catch (System.Exception e)            {               throw e;            }            finally            {               originalImage.Dispose();               bitmap.Dispose();               g.Dispose();            }        } 


[解决办法]

探讨

引用:
这种最好用大小一样的图片,这样才好看。

用户上传的图片,哥们

[解决办法]
参考:
http://www.cnblogs.com/insus/articles/1909037.html
[解决办法]
用户自己上传的 你给个提示给他 要传多高多宽的图片
如果你用缩略图的话 都缩成一样的比例的话 可能会失真

热点排行
Bad Request.