photopea-v2/blog.photopea.com/even-better-png-minification.html

96 lines
4.7 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title> Even better PNG minification</title>
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0" />
<link rel="stylesheet" href="https://blog.photopea.com/wp-content/themes/simplex/style.css" type="text/css" media="screen" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i" rel="stylesheet">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-4249565-38', 'photopea.com'); ga('send', 'pageview');
</script>
</head>
<body>
<div id="page">
<div id="header">
<a href="https://blog.photopea.com/" class="title">Photopea Blog</a>
<!--<p>Web-based image editor.</p>-->
<a class="curr" href="//blog.photopea.com">Blog</a> |
<a href="//www.photopea.com/learn">Learn</a> |
<a href="//www.photopea.com/tuts">Tutorials</a> |
<a href="//www.photopea.com/templates">Templates</a> |
<a href="//www.photopea.com/api">API</a> |
<a href="//www.facebook.com/photopea"><img src="//photopea.com/img/facebook.svg" /></a> |
<a href="//www.twitter.com/photopeacom"><img src="//photopea.com/img/twitter.svg" /></a>
</div> <div id="main">
<div id="content">
<div class="post" id="post-610">
<span class="date">November 22, 2017</span>
<h1>Even better PNG minification</h1>
<div class="entry">
<p>We introduced a <a href="https://blog.photopea.com/png-minifier-inside-photopea.html">PNG minifier</a> inside Photopea half a year ago.
Today, we are glad to announce, that it is even better!</p>
<span id="more-610"></span>
<p>The previous minifier was fast and generated really small files, while keeping a decent quality. But it had problems in some cases, e.g.
when there were large gradients.</p>
<p>We improved our PNG minifier by implementing a completely different quantization algorithm, based on <a href="https://en.wikipedia.org/wiki/K-d_tree">k-D trees</a>. It generates much better palettes and it is also 6x faster than the previous algorithm.</p>
<p>In the following example, we wanted to make an original PNG (18 kB - the first image) four times smaller. You can see an output of an old minifier, and an output of a new minifier, which looks significantly better.</p>
<table><tbody>
<tr>
<td><img src="/pngs/pea_orig.png" /></td>
<td><img src="/pngs/pea_old.png" /></td>
<td><img src="/pngs/pea_new.png" /></td>
<!--<td><img src="/pngs/pea_tiny.png" /></td>-->
</tr>
<tr>
<td>Original - 18.7 kB</td>
<td>Old minifier - 4.8 kB</td>
<td>New minifier - 4.8 kB</td>
<!--<td>TinyPNG - 6.9 kB</td>-->
</tr>
</tbody></table>
<p>Our new minifier is already available in <a href="//www.Photopea.com">Photopea</a>. It is also available in our open-source library <a href="https://github.com/photopea/UPNG.js">UPNG.js</a> and at <a href="http://upng.photopea.com">upng.Photopea.com</a>.</p>
</div>
</div>
</div><!--content-->
<div style="width:110px; margin: 0px auto;">
<a href="#" title="Share on Facebook" onclick="smallWindow('http://www.facebook.com/share.php?u=');"><img src="//www.photopea.com/promo/fb.png" /></a>
<a href="#" title="Share on Google Plus" onclick="smallWindow('https://plus.google.com/share?url=');"><img src="//www.photopea.com/promo/gp.png" /></a>
<a href="#" title="Share on Twitter" onclick="smallWindow('http://twitter.com/share?url=');"><img src="//www.photopea.com/promo/tw.png" /></a>
<script type="text/javascript">
function smallWindow(url)
{
var w = 640, h = 300;
window.open(url+"https://blog.photopea.com/even-better-png-minification.html", "Share", "width="+w+",height="+h+",left="+Math.floor((window.innerWidth-w)/2)+",top="+Math.floor((window.innerHeight-h)/2));
}
</script>
</div>
</div>
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = 'photopeablog'; // required: replace example with your forum shortname
(function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })();
</script>
<!--main-->
<?//php get_sidebar(); ?>
<div id="footer">&copy; 2013-2021 support@photopea.com</div>
</div> <!--page-->
</body>
</html>