<html><head>

<style id="css_styles"> 
blockquote.cite { margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding-top: 0px; }
a img { border: 0px; }
li[style='text-align: center;'], li[style='text-align: center; '], li[style='text-align: right;'], li[style='text-align: right; '] {  list-style-position: inside;}
body { font-family: Helvetica; font-size: 9pt; }
.quote { margin-left: 1em; margin-right: 1em; border-left: 5px #ebebeb solid; padding-left: 0.3em; }

 </style>
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">The performance of Image.getScaledInstance() has been known to be a problem for a long time. (This <a href="https://bugs.openjdk.org/browse/JDK-6196792">ticket</a> discusses it well. It has a complicated history.)<div><div><br /></div><div>I have <a href="https://github.com/mickleness/pumpernickel/wiki/Scaling">developed code</a> that is much more performant. It takes less than 10% of the time the AreaAveragingScaleFilter does. There’s nothing especially clever about it; it just iterates over the pixels more efficiently. Like AreaAveragingScaleFilter: it doesn’t suffer degraded appearance (pixelation) at less than 50% scale.</div><div><br /></div><div>Is there any interest in me working on a PR to overhaul AreaAveragingScaleFilter? (That is: is there interest in reviewing/sponsoring such a PR?) It won’t be a trivial task, but the results I have now indicate the performance gains could be significant.</div><div><br /></div><div>(Or in my wildest of pipe dreams: I’d love it if Graphics2D.drawImage(..) could scale images past 50% without looking pixelated… but that could be an even more difficult discussion about RenderingHints and long-established interpolation norms. So I assume that’s a non-starter.)</div><div><br /></div><div>Regards,</div><div> - Jeremy</div><div></div></div></body></html>