autojs-查看圖片的主題色

思路:

在圖片上, 隨機取25個點 把顏色轉爲hsl, 若是25個點中, 有70%的顏色都是藍色, 那麼圖片的主題色就是藍色java

// 藍色240度
// 實測畫面藍色範圍 210-240
// 70%的點都是藍色, 說明沒有彈框
importClass(Packages.androidx.core.graphics.ColorUtils);
​
function 主色是否是藍色(img) {
  let dw = device.width;
  let dh = device.height;
  let left = dw * 0.3;
  let right = dw * 0.7;
  let top = dh * 0.3;
  let bottom = dh * 0.5;
​
  let pointList = [];
  let k = 5;
  let unitX = (right - left) / k;
  let unitY = (bottom - top) / k;
  for (var i = 0; i < k; i++) {
    let y = top + i * unitY;
    for (var j = 0; j < k; j++) {
      let x = left + j * unitX;
      pointList.push({
        x: x,
        y: y,
      });
    }
  }
​
  let blueCount = 0;
  let total = k * k;
​
  pointList.map(function (point) {
    let color = img.pixel(point.x, point.y);
    let hsl = util.java.array("float", 3);
    ColorUtils.RGBToHSL(colors.red(color), colors.green(color), colors.blue(color), hsl);
​
    if (hsl[0] > 210 && hsl[0] < 240) {
      blueCount++;
    }
  });
  let limit = 0.7;
  if (blueCount / total > limit) {
    return true;
  } else {
    return false;
  }
}
module.exports = 主色是否是藍色;
​
複製代碼

聲明

部份內容來自網絡 本教程僅用於學習, 禁止用於其餘用途android

相關文章
相關標籤/搜索