3

当我需要为我的网站制作一些小的图形元素时,我正在使用patternifypixieengine 。直到现在它才困扰我——像素编辑器已经死了几天了。为什么是这些网站?因为base64代码压缩。

例子:

Patternify - 我用黑色填充 5x5 px 图案,这是我可以获得的 base64 代码:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAEUlEQVQImWNgYGD4jwVTXRAA9qoY6Kb21uEAAAAASUVORK5CYII=

它很短,一切都按我的预期工作。

现在我将尝试在没有这些站点的情况下制作一个简短的 base64 代码。我在 Photoshop 中制作了一个与上面相同的 5x5 的黑色正方形,并以各种可能的格式保存。接下来我发现很少有在线编码器,但这是他们给我的:

iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAMAAAC6sdbXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTM1QjVGOEU0MDkxMTFFM0E5MDlGOUFDNDM5REVCMUQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTM1QjVGOEY0MDkxMTFFM0E5MDlGOUFDNDM5REVCMUQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMzVCNUY4QzQwOTExMUUzQTkwOUY5QUM0MzlERUIxRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMzVCNUY4RDQwOTExMUUzQTkwOUY5QUM0MzlERUIxRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg8gB7gAAAAGUExURQAAAP///6XZn90AAAAOSURBVHjaYmDABwACDAAAHgABzCCyiwAAAABJRU5ErkJggg==

更长的代码和文件的重量与来自 patternify ~950 B 的 PNG 相似

Patternify 限制为 10x10 像素。因此,对于较大的元素,我必须使用 pixieengine,它具有与 patternify 完全相同的压缩级别,并且没有限制不幸的是它已经死了,这就是为什么我现在需要了解它是如何工作的。是否有任何“离线”方式来实现 patternify/pixieengine 压缩级别?

4

1 回答 1

2

这实际上不是关于 base64 编码的问题,而是关于图像压缩的问题。Base64 编码不会隐式地使您的图像占用更少的字节,实际上它会使其占用更多(二进制与该二进制的字符串表示形式)。通过良好的压缩工具(例如pngcrush )运行您的原始 PNG ,然后将其编码为 base64。

于 2014-02-28T20:12:48.120 回答