论坛首页 Web前端技术论坛

我写了一个上传服务器前制作缩略图的函数,请大家看看

浏览 3918 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-16  
/**
 * Created by IntelliJ IDEA.
 * author: dean
 * Date: 2006-8-14
 * Time: 10:45:39
 * description: 支持比例缩放,限制比例。
 *                        主要目的为在上传图片到服务器端之前进行预览。
 *                        当然更可用在HTTP形式路径的图片上。
 *  location: mapbar.com
 */

function ThumbnailTool() {

    this.width = 0;
    this.height = 0;
    this.maxPixel = 50;
    this.boolean = false;
    this.src = "";

    this.setMaxPixel = function (maxPixel) {
        this.maxPixel = maxPixel;
    }

    this.isAutoMaxSize = function (bToMaxSize) {
        this.bToMaxSize = bToMaxSize;
    }

    this.getWidth = function () {
        return this.width;
    }

    this.getHeight = function () {
        return this.height;
    }

    this.getSrc = function () {
        return this.src;
    }

    this.toThumbnail = function (imgSrc) {

        var img = new Image();
        img.src = imgSrc;
        var imgWidht = img.width;
        var imgHeight = img.height;
        this.src = img.src;

        if (!(this.width > 0 && this.height > 0)) {
            if (imgWidht >= imgHeight) {
                if (imgWidht > this.maxPixel || this.bToMaxSize) {
                    this.height = parseInt(parseFloat(imgHeight) / parseFloat(imgWidht) * this.maxPixel + 0.5);
                    this.width = this.maxPixel;
                } else {
                    this.width = imgWidht;
                    this.height = imgHeight;
                }
            } else {
                if (imgHeight > this.maxPixel || this.bToMaxSize) {
                    this.width = parseInt(parseFloat(imgWidht) / parseFloat(imgHeight) * this.maxPixel + 0.5);
                    this.height = this.maxPixel;
                } else {
                    this.width = imgWidht;
                    this.height = imgHeight;
                }
            }
        }
    }
}



调用方法:

     var tbImg = new ThumbnailTool();

     //解决有时候尺寸太大的图片没有读入内存时出现的问题imgSrc 可以是本地路径也可以是http方式的路径
     while(tbImg.getWidth()<2 || tbImg.getHeight()<2 ){
         tbImg.setMaxPixel(50);
         tbImg.toThumbnail(imgSrc);
    //   tbImg.isAutoMaxSize (true);
     }

     document.getElementById("d9").width = tbImg.getWidth();
     document.getElementById("d9").height = tbImg.getHeight();
     document.getElementById("d9").src = tbImg.getSrc();
     document.getElementById("d9").alt = "";


疑问:
    怎么能把读入内存时出现的问题的解决方法放到函数里啊?
   发表时间:2006-10-16  
http://ajax.org/comments/start/2006-09-14/1

请去掉
copyright: http://www.mapbar.com 版权所有

什么意思。

0 请登录后投票
   发表时间:2006-10-17  
噢,那是因为在用IntelliJ IDEA开发的时候模版定义的,已经去掉了
0 请登录后投票
   发表时间:2006-10-17  
zkj_beyond 你也是做GIS的吧。我们也可以讨论AJAX在GIS上的应用啊,但我不知道到哪个版块发贴子
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics