ImageView功能

package util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.view.AbstractView;

public class ImageView extends AbstractView {
    private static final String CONTENT_TYPE = "image/jpeg";

    private byte[] content;

    public ImageView(ByteArrayOutputStream outputStream) {
        content = outputStream.toByteArray();
    }

    public ImageView(InputStream inputStream) {
        try {
            int size = inputStream.available();
            byte[] buffer = new byte[size];
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream(size);
            int position = 0;
            while (true) {
                position = inputStream.read(buffer);
                if (position == -1) {
                    break;
                }
                outputStream.write(buffer, 0, position);
            }
            content = outputStream.toByteArray();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            closeInputStream(inputStream);
        }
    }

    private void closeInputStream(InputStream inputStream) {
        try {
            if (inputStream != null) {
                inputStream.close();
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    protected void renderMergedOutputModel(Map<String, Object> model,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        if (content == null) {
            return;
        }
        response.setContentType(CONTENT_TYPE);
        response.setContentLength(content.length);
        response.setHeader("Cache-Control", "No-cache");
        response.setDateHeader("Expires", 0);
        response.getOutputStream().write(content);
    }
}
时间: 2024-11-07 09:41:14

ImageView功能的相关文章

图片oom问题

1.什么是OOM? 程序申请内存过大,虚拟机无法满足我们,然后自杀了.这个现象通常出现在大图片的APP开发,或者需要用到很多图片的时候.通俗来讲就是我们的APP需要申请一块内存来存放图片的时候,系统认为我们的程序需要的内存过大,及时系统有充分的内存,比如1G,但是系统也不会分配给我们的APP,故而抛出OOM异常,程序没有捕捉异常,故而弹窗崩溃了 2.为什么会有OOM? 因为Android系统的APP每个进程或者虚拟机有最大内存限制,一旦超过这个限制系统就会抛出OOM错误.跟手机剩余内存是否充足没

android photoview 图片放大缩放功能 ImageView

android 图片浏览功能  图片放大缩小 使用 photoview 双击或双指缩放的ImageView 使用多点触控和双击. 滚动,以平滑滚动甩. 实际效果参考 图片来自 : http://a.code4app.com/android/PhotoView/5241a4026803fa1327000000 下载完成后 导入IDE里面 将lib  添加进来 贴出 photoview的代码: /****************************************************

自定义ImageView实现局部截图功能

1.前言 最近在做一个能够自选区域进行局部截图的功能,接下来,会给大家讲解,整个截图的实现过程.笔者这边实现的自选区域的形状是矩形,读者如果有需要,可以根据我给大家讲解的思路,修改成适合自己的截图工具.先来看看效果图 2.效果图 这里的图片是来自笔者对webView的截图产生的,读者可以根据自己的需要,替换上面的图片. 通过拖拽四条边框,可以实现屏幕的局部截图: 拖拽之后,只有需要截图的部分才会高亮显示,其余部分用遮罩掩盖.笔者实现的拖拽四条边都可以任意拖拽,并不一定要正方形或者长方形.也可以如

ImageView使用(适屏、缩放功能)

1.适屏 提取手机的图片库,并且进行选择图片的功能: Button onClick: Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);// 打开手机的图片库 startActivityForResult(intent, IMAGE_SELECT); 处理图片,按照手机的屏幕大小显示: if (requestCode == I

iOS设置imageView转圈功能

闲话少说,直接上代码! UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, imageBgWH, imageBgWH)];        imageView.image=[UIImage imageNamed:@"testing_tree"];        imageView.center=imageBg.center;    //    NSLog(@"%f",ima

软件三重门——业务功能,业务性能及业务智能

软件三重门:业务功能,业务性能,业务智能.这是我在看的<码农>第二期里酷壳博主陈皓说的.原文如下: 我在"软件开发'三重门'"里说过,第一重门是业务功能,在这重门里,的确是会编程就可以了:第二重门是业务性能,在这一重门里,技术的基础就很管用了,比如操作系统的文件管理.进程调度.内存管理,网络的七层模型,TCP/UDP的协议,语言用法.编译和烦请库的实现,数据结构,算法等等就非常关键了:第三重门是业务智能,在这一重门里,你会发现很多东西都很学院派了,比如搜索算法.推荐算法.预

【开源项目解析】QQ“一键下班”功能实现解析——学习Path及贝塞尔曲线的基本使用

早在很久很久以前,QQ就实现了"一键下班"功能.何为"一键下班"?当你QQ有信息时,下部会有信息数量提示红点,点击拖动之后,就会出现"一键下班"效果.本文将结合github上关于此功能的一个简单实现,介绍这个功能的基本实现思路. 项目地址 https://github.com/chenupt/BezierDemo 最终实现效果 实现原理解析 我个人感觉,这个效果实现的很漂亮啊!那么咱们就来看看实现原理是什么~ 注:下面内容请参照项目源码观看. 其

高仿新闻类APP频道管理功能,ItemTouchHelper的实践

转载请标明出处: http://blog.csdn.net/iamzgx/article/details/52843653 在上篇博客 简单仿TabLayout实现个性化Tab,让Tab展现多样化,通过HorizontalScrollView实现了类似TabLayout的功能,并且进行了红点提醒,数字提醒的拓展功能.这种功能在新闻类APP是很常见的,还有一种很常见的功能在上一篇博客结尾也提到过,也就是频道管理的功能.以常用的今日头条为例,频道管理功能效果图如下 仔细玩下这里的功能,这里最难的点应

iOS开发UI篇—UIScrollView控件实现图片缩放功能

一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理.也就是说,要完成缩放功能的话,只需要将需要缩放的内容添加到UIScrollView中 2.缩放原理 当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容) 当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的v