最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs修復(fù)ipa處理過的png圖片

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

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

問題

解析上傳過程比較簡單,我使用JSZip對apk和ipa進行解壓,然后把找到里面的icon上傳到服務(wù)器。但是,當我在網(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)文章

  • nodejs編寫bash腳本的終極方案分享

    nodejs編寫bash腳本的終極方案分享

    你懂JavaScript嗎?你需要寫一個Shell腳本嗎?那么你應(yīng)該試一下Node.js,它很容易安裝,而且很適合通過寫Shell腳本來學習它,下面這篇文章主要給大家介紹了關(guān)于nodejs編寫bash腳本的終極方案,需要的朋友可以參考下
    2021-08-08
  • node.js實現(xiàn)端口轉(zhuǎn)發(fā)

    node.js實現(xiàn)端口轉(zhuǎn)發(fā)

    這篇文章主要為大家詳細介紹了node.js實現(xiàn)端口轉(zhuǎn)發(fā)的關(guān)鍵代碼,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 一文詳解NPM如何換源

    一文詳解NPM如何換源

    在每一次的實際開發(fā)過程中我們都會下載相關(guān)的依賴包,最官方的是 npm,但是該服務(wù)器對于國內(nèi)開發(fā)者來說,下載起來是比較慢的,所以我們需要換源,下面這篇文章主要給大家介紹了關(guān)于NPM如何換源的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 淺談Koa服務(wù)限流方法實踐

    淺談Koa服務(wù)限流方法實踐

    本篇文章主要介紹了淺談Koa服務(wù)限流方法實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Node.js重新刷新session過期時間的方法

    Node.js重新刷新session過期時間的方法

    在Node.js中,我們通常使用express-session這個包來使用和管理session,保存服務(wù)端和客戶端瀏覽器之間的會話狀態(tài)。那如何才能實現(xiàn)當用戶刷新當前頁面或者點擊頁面上的按鈕時重新刷新session的過期時間呢,接下來通過本文一起學習吧
    2016-02-02
  • nodejs報digital?envelope?routines::unsupported錯誤的最新解決方法

    nodejs報digital?envelope?routines::unsupported錯誤的最新解決方法

    這篇文章主要介紹了nodejs報digital?envelope?routines::unsupported錯誤的最新解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Node.js接入DeepSeek實現(xiàn)流式對話功能

    Node.js接入DeepSeek實現(xiàn)流式對話功能

    隨著人工智能技術(shù)的發(fā)展,越來越多的服務(wù)和應(yīng)用開始集成AI能力以提升用戶體驗,本文將介紹如何通過Node.js接入DeepSeek提供的API服務(wù),特別是其聊天完成(Chat?Completions)功能,為您的應(yīng)用增添智能對話能力,需要的朋友可以參考下
    2025-02-02
  • node基于async/await對mysql進行封裝

    node基于async/await對mysql進行封裝

    這篇文章主要介紹了node基于async/await對mysql進行封裝,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • nodejs超出最大的調(diào)用棧錯誤問題

    nodejs超出最大的調(diào)用棧錯誤問題

    這篇文章主要介紹了nodejs超出最大的調(diào)用棧錯誤問題,需要的朋友可以參考下
    2017-12-12
  • webstorm配置支持nodejs并自動補全的方法

    webstorm配置支持nodejs并自動補全的方法

    今天小編就為大家分享一篇webstorm配置支持nodejs并自動補全的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

分宜县| 垫江县| 华阴市| 桐乡市| 安顺市| 吉林省| 文登市| 吐鲁番市| 中西区| 江华| 望奎县| 临城县| 武夷山市| 惠东县| 都安| 尚义县| 北宁市| 马尔康县| 怀宁县| 盖州市| 通河县| 共和县| 京山县| 丰顺县| 平安县| 抚宁县| 胶南市| 苍梧县| 成武县| 德钦县| 鸡西市| 龙海市| 鱼台县| 揭西县| 灌云县| 崇左市| 民和| 浑源县| 德安县| 凭祥市| 会泽县|