nodejs修複ipa處理過的png圖片,

來源:互聯網
上載者:User

nodejs修複ipa處理過的png圖片,

最近做項目遇到一個需求:解析apk和ipa包,然後把裡面的icon上傳到伺服器。

問題

解析上傳過程比較簡單,我使用JSZip對apk和ipa進行解壓,然後把找到裡面的icon上傳到伺服器。但是,當我在網頁中使用圖片時,問題出現了。對於apk中的icon,沒有任何問題,但是對於ipa中解析出來的圖片,在safari中可以正常顯示,在其他任何瀏覽器去無法顯示。

原因

Google後發現,是蘋果對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

您可能感興趣的文章:
  • PNGHandler-藉助JS讓PNG圖在IE下實現透明(包括背景圖)
  • ie6下png圖片背景不透明的解決辦法使用js實現
  • 解決IE6的PNG透明JS外掛程式使用介紹
  • JS解決ie6下png透明的方法執行個體
  • ThinkPHP浮水印功能實現修複PNG透明浮水印並增加JPEG圖片品質可調整

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.