Heim  >  Artikel  >  Web-Frontend  >  Nodejs repariert PNG-Bilder, die von ipa_node.js verarbeitet wurden

Nodejs repariert PNG-Bilder, die von ipa_node.js verarbeitet wurden

WBOY
WBOYOriginal
2016-05-16 15:15:091219Durchsuche

Ich bin kürzlich in einem Projekt auf eine Notwendigkeit gestoßen: APK- und IPA-Pakete analysieren und dann die darin enthaltenen Symbole auf den Server hochladen.

Frage

Der Parsing- und Upload-Prozess ist relativ einfach. Ich verwende JSZip, um die APK und IPA zu dekomprimieren und dann das darin enthaltene Symbol auf den Server hochzuladen. Allerdings tritt das Problem auf, wenn ich Bilder in Webseiten verwende. Es gibt kein Problem mit den Symbolen in der APK, aber die in der IPA analysierten Bilder können in Safari normal angezeigt werden, in keinem anderen Browser jedoch.

Grund

Nach Google habe ich festgestellt, dass Apple PNG-Bilder optimiert hat. Weitere Informationen finden Sie in diesem Artikel:

Apple uses PNGCursh open source library to crush png images inside iPA files。

Lösung

Als Front-End-Ingenieur hoffe ich, dieses Problem mit Javascript lösen zu können. Tatsächlich hat es schon einmal jemand im Ausland gelöst. NodeJS-PNGDefry ist leider nicht mehr lauffähig.

Ich konnte keins finden, also musste ich selbst genug Essen und Kleidung herstellen und selbst eines schreiben. Daher node-pngdefry. Die Funktion von node-pngdefry ist sehr klar: Sie verwendet Javascript, um von Apple verarbeitete PNG-Bilder wiederherzustellen.

node-pngdefry ist sehr einfach zu verwenden und unterstützt die Befehlszeile und reguläre Node.js:

Befehlszeilenverwendung

Installieren:

$ npm install -g pngdefry

dann ausführen:

$ pngdefry -i icon.png -o icon.new.png

Verwendung in Node.js

$ npm install pngdefry --save-dev
var pngdefry = require('pngdefry');
var path = require('path');

var input = path.join(__dirname, 'icon.png');
var output = path.join(__dirname, 'icon.new.png');

pngdefry(input, output, function(err) {
 if (err) {
  return;
 }

 console.log('success');
});

Testen

$ npm test

Projektadresse

node-pngdefry

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn