Maison > interface Web > js tutoriel > Nodejs répare les images png traitées par ipa_node.js

Nodejs répare les images png traitées par ipa_node.js

WBOY
Libérer: 2016-05-16 15:15:09
original
1277 Les gens l'ont consulté

J'ai récemment rencontré un besoin dans un projet : analyser les packages apk et ipa, puis télécharger les icônes qu'ils contiennent sur le serveur.

Question

Le processus d'analyse et de téléchargement est relativement simple. J'utilise JSZip pour décompresser l'apk et l'ipa, puis télécharger l'icône trouvée à l'intérieur sur le serveur. Cependant, le problème survient lorsque j'utilise des images dans des pages Web. Il n'y a aucun problème avec les icônes de l'apk, mais les images analysées dans l'ipa peuvent être affichées normalement dans Safari, mais ne peuvent être affichées dans aucun autre navigateur.

Raison

Après Google, j'ai découvert qu'Apple avait optimisé les images png. Veuillez lire cet article (voir) pour plus de détails. Nous pouvons apprendre quelques informations utiles dans l'article :

.
Apple uses PNGCursh open source library to crush png images inside iPA files。
Copier après la connexion

Solution

En tant qu'ingénieur front-end, j'espère utiliser javascript pour résoudre ce problème. En fait, quelqu'un à l'étranger l'a déjà résolu auparavant. NodeJS-PNDGefry peut le faire. Malheureusement, cela n'a pas été maintenu depuis trop longtemps et il ne peut plus fonctionner.

Je n’en ai pas trouvé de disponible, j’ai donc dû préparer moi-même suffisamment de nourriture et de vêtements et en écrire un moi-même. D'où node-pngdefry. La fonction de node-pngdefry est très claire, qui consiste à utiliser Javascript pour restaurer les images png traitées par Apple.

node-pngdefry est très simple à utiliser et prend en charge la ligne de commande et Node.js standard :

Utilisation de la ligne de commande

installer :

$ npm install -g pngdefry
Copier après la connexion

puis exécutez :

$ pngdefry -i icon.png -o icon.new.png
Copier après la connexion

Utilisation dans Node.js

$ npm install pngdefry --save-dev
Copier après la connexion
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');
});

Copier après la connexion

Test

$ npm test
Copier après la connexion

Adresse du projet

node-pngdefry

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal