コード例 #1
0
ファイル: Circle.java プロジェクト: sn0w/jdownloader
  /**
   * returns the open circle
   *
   * @return
   */
  public Letter getOpenCircle() {
    if (openCircle != null) {
      return openCircle;
    }
    // Graphics g = image.getGraphics();
    // g.setColor(Color.black);
    // g.drawOval(55, 55, 18, 18);
    getCircles();
    // if(true)return null;
    Letter best = null;
    int bestwda = Integer.MIN_VALUE;
    for (PixelObject pixelObject : objectArray) {
      Letter let = pixelObject.toColoredLetter();
      int w = 0;

      for (int x = 0; x < let.getWidth(); x++) {
        for (int y = 0; y < let.getHeight(); y++) {
          if (isBackground(let.getPixelValue(x, y))) {
            w++;
          } else {
            break;
          }
        }
      }

      for (int y = 0; y < let.getHeight(); y++) {
        for (int x = 0; x < let.getWidth(); x++) {
          if (isBackground(let.getPixelValue(x, y))) {
            w++;
          } else {
            break;
          }
        }
      }

      for (int x = 0; x < let.getWidth(); x++) {
        for (int y = let.getHeight() - 1; y > 0; y--) {
          if (isBackground(let.getPixelValue(x, y))) {
            w++;
          } else {
            break;
          }
        }
      }

      for (int y = 0; y < let.getHeight(); y++) {
        for (int x = let.getWidth() - 1; x > 0; x--) {
          if (isBackground(let.getPixelValue(x, y))) {
            w++;
          } else {
            break;
          }
        }
      }

      int wda = w * 100 / let.getArea();
      BasicWindow.showImage(pixelObject.toColoredLetter().getImage(), "" + wda);
      // TODO
      if (wda > bestwda && let.getArea() > minArea) {

        best = let;
        bestwda = wda;
      }
    }
    openCircle = best;
    return best;
  }