ldehai

让每个人都能接受平等的教育

嗨,我是刘德海 (@ldehai),iOS / Mac 独立开发者,现居南京。我创建了AventLabs,一个在线学习编程和设计的平台,主要面向初学者。


我正在写一本书《每个人都会编程》

用Base64嵌入图片

一天冷似一天,阴冷的空气无声无息的悬在城市的上空,纷飞的落叶也在述说着岁月更替的故事。

在使用wxPython写程序时,如果用到了图标,而打包的时候又想嵌到程序里,就要使用base64对图片进行编码,然后把生成的字符串直接写到程序里就好了,废话不多说,上代码:

# -*- coding:utf-8 -*-
#导入需要的库
import wx
from wx.lib.embeddedimage import PyEmbeddedImage #用于嵌入经过base64编码的图片

#用经过Base64处理的字符串构造图片,用图片生成的base64字符串替换下面括号里的内容即可
imgBase64 = PyEmbeddedImage("iVBORw0KGgoAAAANSUhEUgAAWCAYAAAAinad/.......+KElFTkSuQmCC")

#生成空位图
self.ESImage = imgBase64.GetImage()#.Scale(22,24)

#把上一步生成的图片加到控件上去
self.imageCtrl =    wx.StaticBitmap(self.RightPanel,wx.ID_ANY,wx.BitmapFromImage(self.ESImage))
</code></pre>

那么怎么把一个图片用Base64编码呢,请看:

# -*- coding:utf-8 -*-
import base64

file = open('x1.png', 'rb')
pic = file.read()
b64 = base64.b64encode(pic)
print b64

在iOS中,如果我们发Html格式邮件的时候需要带上一个本地图片文件,应该怎么办呢,用附件不合适,这时候也要用Base64处理,注意html代码中base64的标记, 这样浏览器才能正确的解码。

MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];

//构造发送的邮件内容,注意base64的标记
NSString *strMessage = @"img src='data:image/png;base64,%@'<a href=https://itunes.apple.com/us/app/shoebox-find-your-shoes-quickly/id640885172?ls=1&mt=8>View in App Store</a>";

//把图片用base64编码,加到邮件的内容里
UIImage *appicon = [UIImage imageNamed:@"Icon.png"];
NSData *imageData = UIImagePNGRepresentation(appicon);
strMessage = [NSString stringWithFormat:strMessage,[imageData base64EncodedString]];

[mailViewController setMessageBody:strMessage isHTML:YES];
最近的文章

iOS开发初学者指南

挖个坑,准备写一系列iOS开发的入门教程…

iOS继续阅读
更早的文章

Framer简介

Framer是一个开源项目,一个基于JavaScript的原型工具,专为设计师打造。现在的应用更注重交互设计,它可以让你效率更高。项目地址http://www.framerjs.com,使用Framer包括4个步骤: 用Photoshop设计原型图 用Framer.app从Photoshop中导出设计图 在app.js里写视图展示及交互代码,可以加各种特效 用浏览器打开index.html文件就可以查看和调试了Framer项目的代码结构是这样的:app.js //...…

framer继续阅读