时间:2021-05-26
最近做项目遇到一个需求:解析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 pngdefrythen run:
$ pngdefry -i icon.png -o icon.new.png在Node.js中使用
$ npm install pngdefry --save-devvar 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
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文主要是使用nodejs处理图片等资源返回给浏览器显示方法,但不只限制于图片,也可以是音频视频等其他非字符串文件的返回和显示。也可以扩展成nodejs静态资源
很多网站建设的朋友在处理浏览器兼容性的时候,都遇到了在IE6下PNG背景图片不透明的问题,本文网站建设就分享下在IE6中如何使PNG背景图片变为透明。为什么要使
1。总体概要kNN算法已经在上一篇博客中说明。对于要处理手写体数字,需要处理的点主要包括:(1)图片的预处理:将png,jpg等格式的图片转换成文本数据,本博客
效果图如下:图1(头像图片剪成圆形的,其他为透明)图2(给图片的4个角加椭圆)以前没处理过,处理起来真是有点费力呀。用到的模块:复制代码代码如下:importo
使用系统:centos6.464bit在R语言中可以使用png()等函数生成图片,例如:png("aa.png")可以生成图片。但是如果你是通过shell远程连