您的位置:程序门 -> .net技术 -> c#



请教一个关于缩略图的问题!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教一个关于缩略图的问题![已结贴,结贴人:aspdocnet]
发表于:2007-02-14 09:06:29 楼主
我在asp.net开发时遇到了这样的问题,将上传的图片(图片的大小不能固定),显示到其他页面,但显示后发现小图片还好,大图片就完全失真了。请问该怎样才能解决这个问题,希望高手们多多帮忙哈!
发表于:2007-02-14 09:13:081楼 得分:15
给楼主两个自己写的代码看看,希望对你有点帮助    
            ///   <summary>
                ///   按比例缩放图片,并非按原来大小裁剪
                ///   水平长度优先.
                ///   </summary>
                public   static   string   resizeimage(string   _srcimage,   int   _dstx,   string   _dstpath)
                {
                        system.drawing.image   img   =   system.drawing.image.fromfile(_srcimage);
                        int   newhight   =   img.height;
                        int   newwidth   =   img.width;
                        while   (newwidth   >   _dstx)//按比例缩小图片
                        {
                                newhight   =   convert.toint32(newhight   /   1.01);
                                newwidth   =   convert.toint32(newwidth   /   1.01);
                        }
                        system.drawing.image   newimg   =   img.getthumbnailimage(newwidth,   newhight,   new   system.drawing.image.getthumbnailimageabort(thumbcallback),   intptr.zero);
                        system.drawing.bitmap   bmp   =   new   system.drawing.bitmap(newimg);
                        string   tempname=genrandomnumber(22)   +   ".jpg ";
                        bmp.save(_dstpath   +   tempname   ,   system.drawing.imaging.imageformat.jpeg);
                        return   tempname;
                }

                ///   <summary>
                ///   按比例缩放图片,并非按原来大小裁剪
                ///   垂直长度优先
                ///   </summary>
                public   static   string   resizeimage(int   _dsty,   string   _srcimage,   string   _dstpath)
                {
                        system.drawing.image   img   =   system.drawing.image.fromfile(_srcimage);
                        int   newhight   =   img.height;
                        int   newwidth   =   img.width;
                        while   (newwidth   >   _dsty)//按比例缩小图片
                        {
                                newhight   =   convert.toint32(newhight   /   1.01);
                                newwidth   =   convert.toint32(newwidth   /   1.01);
                        }
                        system.drawing.image   newimg   =   img.getthumbnailimage(newwidth,   newhight,   new   system.drawing.image.getthumbnailimageabort(thumbcallback),   intptr.zero);
                        system.drawing.bitmap   bmp   =   new   system.drawing.bitmap(newimg);
                        string   tempname   =   genrandomnumber(22)   +   ".jpg ";
                        bmp.save(_dstpath   +   tempname,   system.drawing.imaging.imageformat.jpeg);
                        return   tempname;
                }
                public   static   bool   thumbcallback()
                {
                        return   true;
                }
                public   static   string   genrandomnumber(int   _seed)
                {
                        random   rdm   =   new   random(_seed);
                        return   system.datetime.now.millisecond.tostring()   +   rdm.next(1,   65536).tostring();
                }
发表于:2007-02-14 09:13:102楼 得分:5
将图片等比缩放:
                static   private   int[]   reducedsize(int   imagewidth,   int   imageheight,   int   targetwidth,   int   targetheight)
                {
                        int   reducedwidth   =   imagewidth;
                        int   reducedheight   =   imageheight;
                        int[]   result   =   new   int[2];

                        if   (!(imagewidth   -   targetwidth   <   0   &&   imageheight   -   targetheight   <   0))
                        {
                                if   ((imagewidth   *   1.0   /   targetwidth)   >     (imageheight   *   1.0   /   targetheight))
                                {
                                        reducedwidth   =   targetwidth;
                                        reducedheight   =   (targetwidth   *   imageheight)   /   imagewidth;
                                }
                                else
                                {
                                        reducedwidth   =   (targetheight   *   imagewidth)   /   imageheight;
                                        reducedheight   =   targetheight;
                                }
                        }

                        result[0]   =   reducedwidth;
                        result[1]   =   reducedheight;
                        return   result;
                }
发表于:2007-02-14 09:13:223楼 得分:5
等比例压缩宽高
jpg文件保存时指定质量
发表于:2007-02-14 13:13:224楼 得分:5
http://www.wave12.com/web/home.asp  
缩略图水印组件wsimage3.5    
发表于:2007-02-14 16:06:175楼 得分:0
?


快速检索

最新资讯
热门点击