Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何限制HTML5画布上下文范围?_Javascript_Html_Canvas_Scale - Fatal编程技术网

Javascript 如何限制HTML5画布上下文范围?

Javascript 如何限制HTML5画布上下文范围?,javascript,html,canvas,scale,Javascript,Html,Canvas,Scale,我正在缩放加载到html5画布中的图像,但我没有设置缩放限制(例如宽度>200和=4550){ 系数=4550/sizeX; 如果(系数

我正在缩放加载到html5画布中的图像,但我没有设置缩放限制(例如宽度>200和<1900):

那么如何获得上下文的实际大小呢?-然后我可以检查一下

if (scale) factor*contextWidth 

设置为小/大并采用系数…

图像大小为缩放大小

// img is an image object
// ctx is context
// scale is scaling
ctx.setScale(scale,scale);
var displayWidth = image.width * scale; // the display width.
var displayHeight = image.height * scale; // the display height
以获得所需的最大比例

// maxImgW the max width you want
var maxImgW = 1900;  
var maxScale = maxImgW / image.width; // the scale that will get the max size
var minImgW = 200;
var minScale = minImgW / image.width; // the scale that will get the min size

我自己也解决了类似的问题:

    imgRes.src = "img/01_cc.jpg";
    var sizeX = imgRes.width;
    var sizeY = imgRes.height;
...
            oldsizeX = sizeX;
            oldsizeY = sizeY;
            sizeX = sizeX * factor;
            sizeY = sizeY * factor;

            // Limit für Skalierung
            if (sizeX <= 910) {
                factor = 910 / sizeX;
                if (factor > 1) factor = 1;
            }
            if (sizeX >= 4550) {
                factor = 4550 / sizeX;
                if (factor < 1) factor = 1;
            }
            sizeX = oldsizeX * factor;
            sizeY = oldsizeY * factor;
            // console.log(sizeX+" - "+sizeY+" - "+factor);
            ctx.scale(factor, factor);
...
imgRes.src=“img/01_cc.jpg”;
var sizeX=imgRes.width;
var sizeY=imgRes.高度;
...
oldsizeX=sizeX;
oldsizeY=sizeY;
sizeX=sizeX*系数;
sizeY=sizeY*系数;
//极限für Skalierung
如果(sizeX 1)系数=1;
}
如果(sizeX>=4550){
系数=4550/sizeX;
如果(系数<1)系数=1;
}
sizeX=旧sizeX*系数;
sizeY=旧sizeY*系数;
//console.log(sizeX+“-”+sizeY+“-”+因子);
比例(因子,因子);
...
    imgRes.src = "img/01_cc.jpg";
    var sizeX = imgRes.width;
    var sizeY = imgRes.height;
...
            oldsizeX = sizeX;
            oldsizeY = sizeY;
            sizeX = sizeX * factor;
            sizeY = sizeY * factor;

            // Limit für Skalierung
            if (sizeX <= 910) {
                factor = 910 / sizeX;
                if (factor > 1) factor = 1;
            }
            if (sizeX >= 4550) {
                factor = 4550 / sizeX;
                if (factor < 1) factor = 1;
            }
            sizeX = oldsizeX * factor;
            sizeY = oldsizeY * factor;
            // console.log(sizeX+" - "+sizeY+" - "+factor);
            ctx.scale(factor, factor);
...