欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs修復ipa處理過的png圖片

 更新時間:2016年02月17日 11:50:32   投稿:hebedich  
ipa本身是一個zip文件改后綴后解壓縮就能看到應用內(nèi)使用的資源文件,其中png圖片資源xcode打包的時候做了些手腳下面我們來看看如何修復這些問題

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

問題

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

原因

Google后發(fā)現(xiàn),是蘋果對png圖片進行了優(yōu)化處理,具體看這篇文章(查看),在文章中我們可以了解到一些有用信息:

Apple uses PNGCursh open source library to crush png images inside iPA files。

解決方案

作為一個前端工程師,我希望用javascript解決這個問題。其實之前國外已經(jīng)有人去解決了,NodeJS-PNGDefry就是可以,可惜這個太久沒維護,已經(jīng)跑不起來。

找不到可用的,我只能自己動手豐衣足食,自己寫一個。因此有了node-pngdefry。node-pngdefry的功能很明確,就是用Javascript來還原被蘋果處理過的png圖片。

node-pngdefry用法很簡單,支持命令行和常規(guī)的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

相關(guān)文章

  • node.js平臺下的mysql數(shù)據(jù)庫配置及連接

    node.js平臺下的mysql數(shù)據(jù)庫配置及連接

    本文主要介紹了node.js平臺下的mysql數(shù)據(jù)庫配置及連接的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • Node.js檢測端口(port)是否被占用的簡單示例

    Node.js檢測端口(port)是否被占用的簡單示例

    大家有沒有遇到過在開啟本地服務時,有這么一種情況:當前端口已經(jīng)被另一個項目使用了,導致服務開啟失敗。那么接下來,我們通過簡簡單單的示例代碼來檢測端口是否已經(jīng)被占用。有需要的朋友們可以參考借鑒。
    2016-09-09
  • nodejs高版本降為低版本的詳細解決方案

    nodejs高版本降為低版本的詳細解決方案

    部分老舊項目需要使用低版本的node,網(wǎng)上很多是無效的,高版本無法直接安裝低版本node,但是低版本nodejs可以安裝部分高版本node,從而達到升級效果,下面這篇文章主要給大家介紹了關(guān)于nodejs高版本降為低版本的詳細解決方案,需要的朋友可以參考下
    2022-12-12
  • nodejs中使用worker_threads來創(chuàng)建新的線程的方法

    nodejs中使用worker_threads來創(chuàng)建新的線程的方法

    這篇文章主要介紹了nodejs中使用worker_threads來創(chuàng)建新的線程的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 在Debian(Raspberry Pi)樹莓派上安裝NodeJS的教程詳解

    在Debian(Raspberry Pi)樹莓派上安裝NodeJS的教程詳解

    在樹莓派上運行NodeJS并不需要特別的配置,你只需要確??梢杂胦penssh遠程連接到你的樹莓派就ok了,關(guān)于在Debian(Raspberry Pi)樹莓派上安裝NodeJS的方法,大家可以通過本文了解下
    2017-09-09
  • nodejs中express入門和基礎知識點學習

    nodejs中express入門和基礎知識點學習

    這篇文章給大家分享了關(guān)于學習nodejs中express入門和基礎知識點內(nèi)容,有興趣的朋友們參考下。
    2018-09-09
  • 使用Express處理請求和托管靜態(tài)資源方式

    使用Express處理請求和托管靜態(tài)資源方式

    這篇文章主要介紹了使用Express處理請求和托管靜態(tài)資源方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 淺談Node模塊系統(tǒng)及其模式

    淺談Node模塊系統(tǒng)及其模式

    本篇文章主要介紹了淺談Node模塊系統(tǒng)及其模式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Express + Session 實現(xiàn)登錄驗證功能

    Express + Session 實現(xiàn)登錄驗證功能

    本文主要介紹在 Express 框架中,如何使用 Session 來實現(xiàn)用戶登錄身份驗證。對express session實現(xiàn)登錄驗證相關(guān)知識,感興趣的朋友一起看看吧
    2017-09-09
  • 在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp

    在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp

    Gulp是一個在使用上比Grunt更加簡潔的自動化工具(文中附有對比),和Node的npm包管理器配合使用非常方便,下面就記錄一下在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp的方法:
    2016-06-06

最新評論