ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsは、ipa_node.jsによって処理されたPNG画像を修復します

Nodejsは、ipa_node.jsによって処理されたPNG画像を修復します

WBOY
WBOYオリジナル
2016-05-16 15:15:091220ブラウズ

私は最近、プロジェクトで apk および ipa パッケージを解析し、内部のアイコンをサーバーにアップロードするというニーズに遭遇しました。

質問

解析とアップロードのプロセスは比較的簡単です。JSZip を使用して apk と ipa を解凍し、その中にあるアイコンをサーバーにアップロードします。ただし、Web ページで画像を使用するときに問題が発生します。 apk内のアイコンは問題ないのですが、ipa内で解析した画像が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 を使用して Apple によって処理された PNG 画像を復元することです。

node-pngdefry は非常に使いやすく、コマンドラインと通常の Node.js をサポートしています。

コマンドラインの使用法

インストール:

$ npm install -g pngdefry

次に、次を実行します:

$ 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');
});

テスト

$ npm test

プロジェクトアドレス

node-pngdefry

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。