BufferedImage AlphaComposite.SrcOver много изображений - выглядит как ужасный серый беспорядок - PullRequest
0 голосов
/ 31 октября 2018

Я хотел бы объединить (сложить) ~ 100 BufferedImages из видео в одну картинку. Самый быстрый способ, которым я знаю, это сделать

  1. Нарисуйте рамку # 1 со 100% альфа в качестве базового изображения
  2. Нарисуйте кадр № 2 с 50% альфа (создание стека с равным сочетанием 2 источников)
  3. Нарисуйте кадр № 3 с 33% альфа
  4. Продолжить с альфа 1 / frameNumber ...

    g2d.composite = AlphaComposite.SrcOver.derive(1.0f / imageCount)
    g2d.drawImage(img, 0, 0, null)
    

Но это выглядит ужасно: серый пестрый беспорядок.

Но , если я делаю вещи вручную (извлекаю значения пикселей в целые числа, суммирую их, делю на 100, складываю обратно в BufferedImage) - это выглядит великолепно! Хорошие плавно смешанные изображения. Но очень медленно.

Есть идеи, почему использование "правильного" способа выглядит так плохо, и если его можно сделать так, чтобы оно выглядело так же хорошо, как и хакерский?

...