如何直接从字节数组显示 JPEG 图像(保存图像之前)?

2023-12-24

我从客户端套接字接收 jpeg 图像(图像大小:50KB)并保存在模拟器 SD 卡中。从那里我在 Imageview 中显示 jpg 图像。但我想在将图像保存到SD卡上之前显示图像,因为我们的android应用程序将从套接字接收连续图像,如果我遵循接收、保存和显示方法,那么它将变得非常慢的过程,所以要提高我想要的速度仅从内存显示。为此,我需要将图像数组临时保存在 RAM 上。从那里我计划使用单独的线程来显示和保存。所以请指导我如何显示字节数组中的图像。

注意:我从套接字接收 JPEG 图像,而不是 .bmp 或 .gif 或 .png。

下面是我从 tcp 套接字接收图像的代码。 (它工作正常) (注意:这是在单独的线程中完成的,不要在 UI 线程中尝试。)

                    public byte[] mybytearray  = new byte[310000];
                    private int bytesRead=0;
                    private int current = 0;

                    ServerSocket serverSocket = new ServerSocket(SERVERPORT);  
                    Socket client = serverSocket.accept(); 


                   try {

                       myDir=new File("/mnt/sdcard/saved_images");

                        if (!myDir.exists()){
                            myDir.mkdir();
                        }else{
                            Log.d("ServerActivity","Folder Already created" );
                        }

                        String fpath = "/image0001.jpg";
                        File file = new File (myDir, fpath);
                        if (file.exists ()) file.delete ();


                        InputStream is = client.getInputStream();
                        FileOutputStream fos = new FileOutputStream(file);
                        BufferedOutputStream bos = new BufferedOutputStream(fos);
                        bytesRead = is.read(mybytearray,0,mybytearray.length);
                        current = bytesRead;

                 do {
                      bytesRead = is.read(mybytearray, current, (mybytearray.length-current));
                      if(bytesRead >= 0) current += bytesRead;

                 } while(bytesRead > -1);

                        bos.write(mybytearray, 0 , current);

                        Log.d("ServerActivity","Reconstructing Image from array");

                        bos.flush();
                        bos.close();
                        fos.flush();
                        fos.close();
                        is.close();
                        client.close();
                        serverSocket.close();
                    } catch (Exception e) { 
                  e.printStackTrace();
              }

尝试将此代码片段插入到您的代码中:

do {
    bytesRead = is.read(mybytearray, current, (mybytearray.length-current));
    if(bytesRead >= 0) current += bytesRead;
} while(bytesRead > -1);

ByteArrayInputStream inputStream = new ByteArrayInputStream(myByteArray);
bitmap = BitmapFactory.decodeStream(inputStream);
ImageView picture = new ImageView(this);
picture.setImageBitmap(bitmap);

bos.write(mybytearray, 0 , current);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何直接从字节数组显示 JPEG 图像(保存图像之前)? 的相关文章

  • 如何重试已消耗的 Observable?

    我正在尝试重新执行失败的已定义可观察对象 一起使用 Retrofit2 和 RxJava2 我想在单击按钮时重试特定请求及其订阅和行为 那可能吗 service excecuteLoginService url tokenModel Ret
  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何在android中获取Camera2 API的当前曝光

    In android hardware Camera旧的 我使用下面的代码获取当前曝光并获取它Camera Camera Parameters param mCamera getParameters currentExposure para
  • 如何测量我的网站客户端的图像下载时间?

    在 Img 标签中 我们知道图像有一个 OnLoad 事件 该事件在图像完成加载时触发 但是我们能在图像开始下载时得到准确的测量结果吗 我正在尝试测量网站的页面加载时间 因此如果可能的话 了解加载图像需要多长时间将成为我分析的一部分 我想以
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • CollapsingToolBarLayout - 状态栏稀松布颜色不改变

    几天前我更新了我的 android studio 并开始使用 CoordinatorLayout 和 CollapsingToolbarLayout 只是尝试一些东西 工具栏稀松布颜色似乎覆盖了状态栏初始颜色和状态栏稀松布颜色 从 xml
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • Postgres 9.6 - 为 json 数组创建唯一索引

    Sup 我们有一个 Postgres 9 6 表myTable有一排data jsonb NOT NULL DROP TABLE myTable CREATE TABLE myTable data jsonb NOT NULL 我们想要存储
  • 如何手动将库添加到 Visual Studio 2017 项目中?

    我对这个非常基本的问题表示歉意 这个问题肯定已经被问过并回答过 也对我非常过时的术语表示歉意 我寻找答案 但没有找到任何有用的东西 我正在使用 VS 2017 Community 的最新更新 并且我正在尝试手动将我以前称为 函数库 的内容添
  • TypeScript 经常出现问题,并且更喜欢 import 而不是 require

    只要有可能 我都会尝试使用import over require但在某些情况下这会破坏类型检查 处理这个问题的正确方法是什么 是否可以导入 不是全部require可以替换为import s Left Property get does no
  • iPad:分割视图不旋转

    我有以下设置 的一个子类UISplitViewController在构造函数中创建主视图控制器和详细视图控制器 均覆盖的主视图控制器和详细视图控制器shouldAutorotateToInterfaceOrientation回来YES 详细
  • 连接到外部 MYSQL docker 容器

    我有两个正在运行的虚拟机 其中一个 A 在 docker 网络内有 MYSQL 数据库 另一个 B VM 具有我的前端应用程序 docker 容器 我运行我的 MYSQL docker 容器 A 如下所示 docker run name d
  • 当我编辑文件时,Visual Studio 不会跟踪更改或从源代码管理中检出文件

    我是 TFS 的新手 在我的工作中 我将 TFS 项目映射到本地目录 执行获取 一切都按我的预期进行 当我在本地副本上编辑文件时 源代码管理会自动将它们签出以进行编辑 并通过挂起的更改窗口跟踪带有挂起的更改的文件 然后我就用那个窗口全天检查
  • C# 中的模拟文件 IO 静态类

    我是单元测试的新手 我需要模拟 System IO 命名空间中的 File 静态类 我正在使用 Rhinomock 实现此目的的最佳方法是什么 可以说我需要模拟 File Exists File Delete 您无法使用 Rhino 模拟来
  • Hibernate 验证@ManyToOne 至少有一个

    我将 Spring 4 1 与 Hibernate 一起使用 并使用 OneToMany ManyToOne 等注释实体 对于某种情况 A 类 有很多 B 类 如果 A 类没有至少一个与之关联的 B 类 则 A 类无效 有没有一种简单的方法
  • 使用 pyparsing 解析数学表达式

    我正在尝试使用 pyparsing 来解析数学表达式 我知道我可以从 pyparsing 网站复制示例计算器 但我想理解它 以便稍后添加 我来这里是因为我试图理解这个例子 但我做不到 所以我尽力了 我得到了这个 symbol pp Lite
  • 如何找到域名的权威名称服务器?

    如何找到冲突的 DNS 记录的来源 您需要给定域名的 SOA 授权起始 记录 这就是您使用通用可用的nslookup命令行工具 command line gt nslookup gt set querytype soa gt stackov
  • 扩展店件模型

    我需要扩展 Shopware 变体模型 以便添加一些自定义属性 例如金属类型 石头宝石类型 这是基础文章 这些属性将在后端和前端使用 我怎样才能做到这一点 谢谢 扩展 Shopware 核心模型本身根本不可能 根据您尝试扩展的具体模型 有两
  • Maven Surefire 默认情况下顺序执行测试用例吗?

    这是此内容的后续内容question https stackoverflow com questions 7267790 does junit execute test cases sequentially当我深入研究我的研究时我意识到 假
  • iPhone / iPad / iPod 滑动事件 javascript

    我正在寻找 如果可能的话 JavaScript 库 插件来提供滑动事件 然而 我并不追求简单的滑动检测 例如 jqTouch 提供的 我希望创建类似于 iPod 设备上的图像查看器的行为 例如 您向左或向右拖动即可转到下一张图像 您必须将图
  • 在带有边框的画布中的当前剪辑上绘制位图(绘画)

    我正在通过编写游戏来学习 Android 并且在图形 API 方面遇到问题 我想将图像绘制成路径的形状 然后在路径上添加边框 我能够使用路径剪辑图像 但找不到在其上添加边框的方法 我认为这很简单 因为 API 支持 Canvas draw
  • MOV x86 指令是否实现 C++11 memory_order_release 原子存储?

    根据这个https www cl cam ac uk pes20 cpp cpp0xmappings html https www cl cam ac uk pes20 cpp cpp0xmappings html 已发布的商店实现为MOV
  • 如何将多级对象映射到indexedDB以获得最佳效率

    我的问题涉及在indexedDB 中布置数据结构 我开始构建一个小型网页功能 该功能逐渐发展成为一种网络学习工具 现在更接近于独立的渐进式网络应用程序 使用 localStorage 效果很好 但随着该工具的发展 5MB 限制可能会成为某些
  • AdMob 同意书未显示?

    我不明白为什么 Google 提供的同意书没有显示 说加载成功 但是却没有显示 我在欧洲 所以我的位置不是问题 我在模拟器和真实设备上都尝试过 我只手动选择了 12 个广告提供商 这是有问题的代码 PACConsentInformation
  • 如何调试在启动时启动的进程?

    我正在尝试在启动时启动的 Windows 服务中设置断点 由于我犯了一个不幸的错误 该服务迫使机器进入重新启动循环 这意味着我无法达到可以部署修复程序的稳定状态 而且显然我无法尝试调试该服务在更方便的时间 我可以在内核模式下使用windbg
  • 在 Android Studio 的依赖项中显示没有 OpenCV 模块

    我尝试了很多教程和博客在 Android Studio 上设置 OpenCV Android 库他们中的一些人在这里 在 Android Studio 上设置 OpenCV Android 库的初学者指南 https android jle
  • 如何直接从字节数组显示 JPEG 图像(保存图像之前)?

    我从客户端套接字接收 jpeg 图像 图像大小 50KB 并保存在模拟器 SD 卡中 从那里我在 Imageview 中显示 jpg 图像 但我想在将图像保存到SD卡上之前显示图像 因为我们的android应用程序将从套接字接收连续图像 如