PluginProbe
Gutenberg / 24.1.0
Gutenberg v24.1.0
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | build/modules/vips/worker.min.js +26 -8 23.9.1 → 24.1.0 View file →
@@ -52893,11 +52893,9 @@
52893 52893 var vips_heif_default = bytes2;
52894 52894
52895 52895 // packages/vips/src/utils.ts
52896 52896 function supportsQuality(type) {
52897 - return ["image/jpeg", "image/png", "image/webp", "image/avif"].includes(
52898 - type
52899 - );
52897 + return ["image/jpeg", "image/webp", "image/avif"].includes(type);
52900 52898 }
52901 52899 function supportsAnimation(type) {
52902 52900 return ["image/webp", "image/gif"].includes(type);
52903 52901 }
@@ -52998,8 +52996,11 @@
52998 52996 }
52999 52997 if (interlaced && supportsInterlace(outputType)) {
53000 52998 saveOptions.interlace = interlaced;
53001 52999 }
53000 + if ("image/png" === outputType && isPaletteImage(image)) {
53001 + saveOptions.palette = true;
53002 + }
53002 53003 if ("image/avif" === outputType) {
53003 53004 saveOptions.effort = 2;
53004 53005 const sourceBitdepth = getSourceBitdepth(image);
53005 53006 if (sourceBitdepth > 8) {
@@ -53089,8 +53090,11 @@
53089 53090 const result = copy.call(cropped);
53090 53091 setImage.call(result, "gainmap", newGainmap);
53091 53092 return result;
53092 53093 }
53094 +function isPaletteImage(image) {
53095 + return image.getTypeof("palette") !== 0;
53096 +}
53093 53097 function getSourceBitdepth(image) {
53094 53098 try {
53095 53099 const bitdepth = image.getInt("heif-bitdepth");
53096 53100 if (bitdepth > 8) {
@@ -53109,9 +53113,15 @@
53109 53113 return 10;
53110 53114 }
53111 53115 return 8;
53112 53116 }
53113 -function buildSaveOptions(type, quality, bitdepth = 8, stripMeta = true) {
53117 +function buildSaveOptions({
53118 + type,
53119 + quality,
53120 + bitdepth = 8,
53121 + stripMeta = true,
53122 + isPalette = false
53123 +}) {
53114 53124 const saveOptions = {
53115 53125 // Strip metadata except ICC color profiles or gainmaps,
53116 53126 // matching WordPress core's behavior. The \`image_strip_meta\`
53117 53127 // filter can disable stripping entirely.
@@ -53119,8 +53129,11 @@
53119 53129 };
53120 53130 if (supportsQuality(type)) {
53121 53131 saveOptions.Q = quality * 100;
53122 53132 }
53133 + if ("image/png" === type && isPalette) {
53134 + saveOptions.palette = true;
53135 + }
53123 53136 if ("image/avif" === type) {
53124 53137 saveOptions.effort = 2;
53125 53138 if (bitdepth > 8) {
53126 53139 saveOptions.bitdepth = bitdepth;
@@ -53207,14 +53220,15 @@
53207 53220 thumb.onProgress = onProgress;
53208 53221 return thumb;
53209 53222 }
53210 53223 );
53211 - const saveOptions = buildSaveOptions(
53224 + const saveOptions = buildSaveOptions({
53212 53225 type,
53213 53226 quality,
53214 - saveBitdepth,
53215 - stripMeta
53216 - );
53227 + bitdepth: saveBitdepth,
53228 + stripMeta,
53229 + isPalette: isPaletteImage(sourceImage)
53230 + });
53217 53231 const outBuffer = image.writeToBuffer(\`.\${ext}\`, saveOptions);
53218 53232 const result = {
53219 53233 buffer: outBuffer.buffer,
53220 53234 width: image.width,
@@ -53270,8 +53284,9 @@
53270 53284 if (!inProgressOperations.has(id)) {
53271 53285 image.kill = true;
53272 53286 }
53273 53287 };
53288 + const isPalette = isPaletteImage(image);
53274 53289 switch (orientation) {
53275 53290 case 2:
53276 53291 image = image.flipHor();
53277 53292 break;
@@ -53295,8 +53310,11 @@
53295 53310 break;
53296 53311 }
53297 53312 image.remove("orientation");
53298 53313 const saveOptions = {};
53314 + if ("image/png" === type && isPalette) {
53315 + saveOptions.palette = true;
53316 + }
53299 53317 const outBuffer = image.writeToBuffer(\`.\${ext}\`, saveOptions);
53300 53318 const result = {
53301 53319 buffer: outBuffer.buffer,
53302 53320 width: image.width,