ios将base64字符串转为图片,点击图片全屏展示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios将base64字符串转为图片,点击图片全屏展示相关的知识,希望对你有一定的参考价值。
参考技术A UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(20, 10, Screen_width-40, 180)];// 将base64字符串转为NSData
NSData *decodeData = [[NSData alloc]initWithBase64EncodedString:[orderInfoDic objectForKey:@"IMAGEURL"] options:(NSDataBase64DecodingIgnoreUnknownCharacters)];
// 将NSData转为UIImage
UIImage *decodedImage = [UIImage imageWithData: decodeData];
imageView.userInteractionEnabled = YES;
[imageView setImage:decodedImage];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showZoomImageView:)];
tapGesture.numberOfTapsRequired=1;
[imageView addGestureRecognizer:tapGesture];
[cell.contentView addSubview:imageView];
return cell;
//放大缩小图片
-(void)showZoomImageView:(UITapGestureRecognizer *)tap
if (![(UIImageView *)tap.view image])
return;
UIView *bgView = [[UIView alloc] init];
bgView.frame = [UIScreen mainScreen].bounds;
bgView.backgroundColor = [UIColor blackColor];
[[[UIApplication sharedApplication] keyWindow] addSubview:bgView];
UITapGestureRecognizer *tapBgView = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapBgView:)];
[bgView addGestureRecognizer:tapBgView];
//必不可少的一步,如果直接把点击获取的imageView拿来玩的话,返回的时候,原图片就完蛋了
UIImageView *tempImageView = (UIImageView*)tap.view;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:tempImageView.frame];
imageView.image = tempImageView.image;
[bgView addSubview:imageView];
[UIView animateWithDuration:0.5 animations:^
CGRect frame = imageView.frame;
frame.size.width = bgView.frame.size.width;
frame.size.height = frame.size.width * (imageView.image.size.height / imageView.image.size.width);
frame.origin.x = 0;
frame.origin.y = (bgView.frame.size.height - frame.size.height) * 0.5;
imageView.frame = frame;
];
-(void)tapBgView:(UITapGestureRecognizer *)tapBgRecognizer
[tapBgRecognizer.view removeFromSuperview];
JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片
网络资源代码
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 将网络图片转成Base64码,此方法可以解决解码后图片显示不完整的问题
* @param imgURL图片地址。
* 例如:http://***.com/271025191524034.jpg
* @return
*/
public static String imgBase64(String imgURL) {
ByteArrayOutputStream outPut = new ByteArrayOutputStream();
byte[] data = new byte[1024];
try {
// 创建URL
URL url = new URL(imgURL);
// 创建链接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(10 * 1000);
if(conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
return "fail";//连接失败/链接失效/图片不存在
}
InputStream inStream = conn.getInputStream();
int len = -1;
while ((len = inStream.read(data)) != -1) {
outPut.write(data, 0, len);
}
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(outPut.toByteArray());
}
本地图片转base64
public static String GetImageStr(String imgFile)
{//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
//读取图片字节数组
try
{
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
//对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);//返回Base64编码过的字节数组字符串
}
Base64解码并生成图片
public static boolean GenerateImage(String base64str,String savepath)
{ //对字节数组字符串进行Base64解码并生成图片
if (base64str == null) //图像数据为空
return false;
// System.out.println("开始解码");
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解码
byte[] b = decoder.decodeBuffer(base64str);
// System.out.println("解码完成");
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
// System.out.println("开始生成图片");
//生成jpeg图片
OutputStream out = new FileOutputStream(savepath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
以上是关于ios将base64字符串转为图片,点击图片全屏展示的主要内容,如果未能解决你的问题,请参考以下文章