Javascript 如何计算图像';s计算整个区域的透明度?

Javascript 如何计算图像';s计算整个区域的透明度?,javascript,java,android,ios,c,Javascript,Java,Android,Ios,C,就像这张图片一样,红色边框表示图像的大小,绿色边框表示图像的可见大小,绿色边框外是alpha像素。如何计算可视帧 这两种计算机语言都正常。//此函数将返回具有左、顶位置以及绿色框的宽度和高度等属性的对象。 // This function will return object with properties like left, top position and width & height of green box. //@imgObj : Image Object of target

就像这张图片一样,红色边框表示图像的大小,绿色边框表示图像的可见大小,绿色边框外是alpha像素。如何计算可视帧

这两种计算机语言都正常。

//此函数将返回具有左、顶位置以及绿色框的宽度和高度等属性的对象。
// This function will return object with properties like left, top position and width & height of green box.
//@imgObj : Image Object of target image (.png)

 function getImageDetails(imgObj)
 {
    var cns = document.createElement("canvas");

    cns.width = imgObj.width;
    cns.height = imgObj.height;

    var ctx = canvas.getContext("2d");
    ctx.drawImage(imgObj,0,0,cns.width,cns.height);

    var imgData = ctx.getImageData(0, 0, cns.width, cns.height).data;
    var minCol,maxCol,curCol,
        minRow,maxRow,curRow;

    for (var i = 0; i < imgData.length; i += 4) {
         var index = Math.floor(i/4);
         curCol = index%cns.width;
         curRow = Math.floor(index/cns.width);
         if( imgData[i] != 0 || 
             imgData[i + 1] != 0 || 
             imgData[i + 2] != 0 || 
             imgData[i + 3] != 0)
         {
             minCol = minCol == undefined || minCol > curCol ? curCol : minCol;
             maxCol = maxCol == undefined || maxCol < curCol ? curCol : maxCol;
             minRow = minRow == undefined || minRow > curRow ? curRow : minRow;
             maxRow = maxRow == undefined || maxRow < curRow ? curRow : maxRow;
         }
    }

    var details = new Object();

    details.x = minCol;
    details.y = minRow;
    details.width = maxCol-minCol+1;
    details.height = maxRow-minRow+1;

    return details  
 }
//@imgObj:目标图像(.png)的图像对象 函数getImageDetails(imgObj) { var cns=document.createElement(“画布”); cns.width=imgObj.width; cns.height=imgObj.height; var ctx=canvas.getContext(“2d”); ctx.drawImage(imgObj,0,0,cns.宽度,cns.高度); var imgData=ctx.getImageData(0,0,cns.width,cns.height); var minCol、maxCol、curCol、, minRow、maxRow、curRow; 对于(变量i=0;icurCol?curCol:minCol; maxCol=maxCol==未定义的| | maxColcurRow?curRow:minRow; maxRow=maxRow==undefined | | maxRow
使用javascript,您可以在画布中加载此图像,循环像素以获得alpha通道,并获得x和y的最小值和最大值,其中alpha与0不同。然后,您可以裁剪图像。但是如果你想裁剪多幅图像,请查看