热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

问题标签用户c#接收多个Byte数组,组成Byte数组,转成图片,中间出现丢失字节,如何保证图片完整性

c#接收多个Byte数组,组成Byte数组,转成图片Bitmap,中间出现丢失字节,如何保证图片完整性。我目前做的是下位机与上位机通信,下位机采用GPRS传输图片到上位机,但是每次只能传输1K
c#接收多个Byte数组,组成Byte数组,转成图片Bitmap,中间出现丢失字节,如何保证图片完整性。

我目前做的是下位机与上位机通信,下位机采用GPRS传输图片到上位机,但是每次只能传输1K,
图片大于1K,分多次发送到上位机,当上位机与下位机通讯时,如果中间过程中导致其中一次传输不正确,上位机如何处理才能把图片正常显示出来。也就是说Byte数组转成图片(Bitmap)过程中,Byte数组中一部分丢失了。如何补充上,利用Bitmap转成图片时候显示正常。

10 个解决方案

#1


要有交互,缺失的重发

#2


@jiangfling   在这方面已经考虑了。  如果丢失的位数不多,是不是可以通过补充做到呢? 

#3


只能重发 还能怎么样

#4


通过的是GPRS传输,本身存在误码率。
目前我设计的是  发送中存在丢失情况,再次交互重新发送。
我是想 , 如果中间丢失了部分字节的话, 是否可以把丢失的字节默认补充上,这样是否可以呢? 
如果补充上的话,能否做到,丢失的字节转成图片是不正常的,其他的是正常的;图片显示只有部分(丢失的字节)是不正常的。这样可以做到吗?

#5


引用 1 楼 jiangfling 的回复:
要有交互,缺失的重发

通过的是GPRS传输,本身存在误码率。
目前我设计的是  发送中存在丢失情况,再次交互重新发送。
我是想 , 如果中间丢失了部分字节的话, 是否可以把丢失的字节默认补充上,这样是否可以呢? 
如果补充上的话,能否做到,丢失的字节转成图片是不正常的,其他的是正常的;图片显示只有部分(丢失的字节)是不正常的。这样可以做到吗?

引用 3 楼 sj490790083 的回复:
只能重发 还能怎么样

通过的是GPRS传输,本身存在误码率。
目前我设计的是  发送中存在丢失情况,再次交互重新发送。
我是想 , 如果中间丢失了部分字节的话, 是否可以把丢失的字节默认补充上,这样是否可以呢? 
如果补充上的话,能否做到,丢失的字节转成图片是不正常的,其他的是正常的;图片显示只有部分(丢失的字节)是不正常的。这样可以做到吗?

#6


下位机在给上位机发数据之前,可以先发个较短的包,告诉上位机总长度,这样上位机就知道下位机会分几次发送上来
每次发送的数据前面加个包的标识,告诉上位机byte数组的偏移量.
这样上位机起码不会将图片错位了.
最后就是没有数据的部分都显示为白色就好啦.

#7


而且上位机在接到下位机总长度后,可以事先定义好byte数组并直接显示一张空白图片
下位机发送一部分,上位机就更新一部分
这样在用户看来图片是一直都有变化,不会在那里空等,也能知道进度
如果这部分图片已经能满足他观察的需求,他也可以选择终止图片的显示,不用每次都收到完整的图片才能看.
出错的包可以选择等剩下的包都接收到了之后才发送,不要老卡在同一个地方.

#8


引用 7 楼 Z65443344 的回复:
而且上位机在接到下位机总长度后,可以事先定义好byte数组并直接显示一张空白图片
下位机发送一部分,上位机就更新一部分
这样在用户看来图片是一直都有变化,不会在那里空等,也能知道进度
如果这部分图片已经能满足他观察的需求,他也可以选择终止图片的显示,不用每次都收到完整的图片才能看.
出错的包可以选择等剩下的包都接收到了之后才发送,不要老卡在同一个地方.


我现在正在尝试补位的情况,这个补位有什么协议或者规则呢?

#9


引用 8 楼 aa18045628089 的回复:
Quote: 引用 7 楼 Z65443344 的回复:

而且上位机在接到下位机总长度后,可以事先定义好byte数组并直接显示一张空白图片
下位机发送一部分,上位机就更新一部分
这样在用户看来图片是一直都有变化,不会在那里空等,也能知道进度
如果这部分图片已经能满足他观察的需求,他也可以选择终止图片的显示,不用每次都收到完整的图片才能看.
出错的包可以选择等剩下的包都接收到了之后才发送,不要老卡在同一个地方.

我现在正在尝试补位的情况,这个补位有什么协议或者规则呢?

你弄个空白图片,转成流,看看是什么格式,不就行啦.
正常应该是argb,每4个字节一组,表示一个像素,都赋值成0应该就是黑色的,都赋值成255就是白色.

#10


已经放弃图片处理的过程。
做好交互,和补发等工作,可以有效避免这类问题。
结贴。

推荐阅读
  • 白话计算机图形学初步-由一个小问题引发的故事
    一、为何写本文  今天在学习android时遇到的一个问题:android程序从网络得到一张图片,显示在程序的imageview中,期间调用了bitmap把字节数组转化成位图文件,才能 ... [详细]
  • Android Bitmap 缓存策略
    Android中最常用到缓存的地方就是图片,通过过缓存即可以提高应用程序的效率,又可以节省用户的流量。图片的缓存简单来说可以分为SD卡缓存和内存缓存,也可以俩者配合使用。Andr ... [详细]
  • 文章目录1.数据结构的定义2.查询方法的实现3.修改方法的实现        在Java中使用byte[]字节数组来储存bit,1byte=8bit。对于bit中的第i位,该bit ... [详细]
  • 网上有很多解决android加载bitmap内存溢出的方法,搜了一圈做下整理总结。项目里需求是拍摄多图之后上传,部分手机会内存溢出。常用一种解决方法:即将载入的图片缩小,这种方式以牺牲图片的质量为代价 ... [详细]
  • BitMap的原理和实现方法
    这篇文章主要介绍“BitMap的原理和实现方法”,在日常操作中,相信很多人在BitMap的原理和实现方法问题上存在疑惑,小编查阅了各式资料,整理出简 ... [详细]
  • Android 性能优化系列之bitmap图片优化
    在日常开发的APP,大部分时候需要想用户展示图片信息,图片最终对应Android中的Bitmap对象。而对于APP端来说Bitmap又是一个比较麻烦的问题,主要表现在Bitmap是非常占用内存的对象,处理不当将导致APP运行卡顿甚至出现OOM ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 在Android平台上,视频监控系统的优化与应用具有重要意义。尽管已有相关示例(如http:www.open-open.comlibviewopen1346400423609.html)展示了基本的监控功能实现,但若要提升系统的稳定性和性能,仍需进行深入研究和优化。本文探讨了如何通过改进算法、优化网络传输和增强用户界面来提高Android视频监控系统的整体效能,以满足更复杂的应用需求。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • 在托管C++中开发应用程序时,遇到了如何声明和操作字符串数组的问题。本文详细探讨了字符串数组在托管C++中的应用与实现方法,包括声明、初始化、遍历和常见操作技巧,为开发者提供了实用的参考和指导。 ... [详细]
  • Android大图片裁剪终极解决方案(上:原理分析)
    转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激!:-)http:blog.csdn.netfloodingfirearticledetails ... [详细]
  • 在Android中进行图像处理的任务时,有时我们希望将处理后的结果以图像文件的格式保存在内部存储空间中,本文以此为目的,介绍将Bitmap对象的数据以P ... [详细]
  • Android开发之网络图片查看方法BitmapFactory.decodeStream()学习01
    Android实现网络图片的查看有好几种方法,但这本身是一种很耗时的操作,可以通过直接获取和操作线程的方法,自己学习使用了BitmapFactory.decodeStream()在代码中自己写了注释, ... [详细]
author-avatar
三封酒可_894
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有