nodejsはipadの処理したことがあるpngピクチャーを修復します.

1490 ワード

最近プロジェクトをして一つの需要に出会いました.アプリとiPadパッケージを解析して、中のiconをサーバーにアップロードします.
問題
アップロードの過程を解析するのは簡単です.JSZipを使ってappkとipadを解凍して、中のiconを見つけてサーバーにアップロードします.しかし、私がホームページで写真を使うと、問題が発生しました.appkのiconについては、問題はありませんが、iPadで解析された画像は、safariで正常に表示され、他のブラウザでは表示されません.
原因
Googleが発見したのは、Appleがpng画像を最適化したもので、具体的にはこの記事を見て、文章の中で有益な情報がいくつか分かります.

Apple uses PNGCursh open source library to crush png images inside iPA files。
ソリューション
フロントエンドエンジニアとして、javascriptを使ってこの問題を解決したいです.実は前に海外で解決した人がいました.NodeJS-PNGDefryはいいです.残念ですが、これは長くメンテナンスしていないので、もう走れません.
使えるものが見つからないので、自分で手を動かして衣食を十分にとり、自分で書くしかないです.したがって、node-pngdefryがあります.node-pngdefryの機能は明らかで、Javascriptを使ってアップルによって処理されたpng画像を復元します.
node-pngdefryの使い方は簡単です.コマンドラインと従来のNode.jsをサポートします.
コマンドラインの使い方
install:

$ npm install -g pngdefry
then run:

$ pngdefry -i icon.png -o icon.new.png
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');
});

Test

$ npm test
プロジェクトのアドレス
node-pngdefry