JavaScriptでipad処理したpng画像を修復します.


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