时候我们需要在内存中转换Image格式到Icon根据经验,通常我们应该可以这样做Imageim

时候我们需要在内存中转换Image格式到Icon

根据经验,通常我们应该可以这样做

Image image = xxxx;///假设这里已经有一个Image对象

System.IO.MemoryStream mStream = new System.IO.MemoryStream();///创建内存流

image.Save(mStream, System.Drawing.Imaging.ImageFormat.Icon);

Icon icon = Icon.FromHandle(new Bitmap(mStream).GetHicon());

mStream.Close();

但这里在image.Save的时候会报告错误,空对象引用。

于是我改变保存的格式为Bitmap、Jpeg等,这样就没有错误了(说明不能在内存中直接保存为Icon格式)。

但是这样的话,取得的Icon将会去掉原图片中的透明信息。

一个个格式的试验我们可以发现保存为Gif格式的时候,还可以保留透明信息,哈哈,终于找到,

但这里,还有值得注意的就是,在成功取得内存流后,不能直接用Icon构造,一定要用Bitmap转,否则也会报错。

Icon icon = new Icon(mStream);//这种方式将报错

本文由来源 21aspnet,由 system_mush 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

java image转换icon_内存转换Image到Icon相关推荐

  1. java linux urlencode_java字符编码转换研究(转)

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

  2. 【Android NDK 开发】JNI 方法解析 ( 字符串数组参数传递 | 字符串遍历 | 类型强转 | Java 字符串与 C 字符串转换 | 字符串释放 )

    文章目录 I . C/C++ 中的 Java 字符串数组类型 II . 获取字符串数组长度 III . 获取字符串数组元素 IV . 类型强转 ( jobject -> jstring ) V ...

  3. java 实体属性个数_?Java中比较实用实体转换工具介绍

    ​Java中比较实用实体转换工具介绍 文中源码地址 大家一般编码过程中,经常会遇到DO对象转化为DTO对象,对象和对象之间转换一般需要用到转换工具,毕竟使用getter/setter太过麻烦 DO:D ...

  4. Java+Windows+ffmpeg实现视频转换

    旧文,源地址见这里. 最近由于项目需要,研究了一下如何用Java实现视频转换,"着实"废了点心思,整理整理,写出给自己备忘下. 思路 由于之前没有没法过相关功能的经验,一开始来真不 ...

  5. Java:缓冲流、转换流、序列化流

    1.缓冲流-概述 读.写都可以使用一种"数组"的方式,这种方式会大大提高读.写的效率,基于这种原因,Java内部提供一种"缓冲流",其内部自带一个缓冲区(数组) ...

  6. java 日期和时间格式化转换符操作

    学习java时知识太过的零碎,不系统,学习东西以快为主,导致根基不稳,现在决定把java基础重新学习一遍,把自认为比较好的java使用方式拿出来 1.自己在熟悉一遍 2.后续方便查找 3.没有了解的在 ...

  7. java int转换float_java float转换int

    1.Java的简单类型及其封装器类 ⑴Java简单类型与封装类 我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了 ...

  8. JAVA之缓冲流,转换流和序列化流

    JAVA之缓冲流,转换流和序列化流 主要内容 缓冲流 转换流 序列化流 打印流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流, ...

  9. Google App Engine for Java下的URL编码转换问题

    URL编码问题 此部分参考英文资料: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm http://www.w3school ...

最新文章

  1. 真正决定分辨准确率的是图片重叠的区域
  2. tcp/ip 协议栈Linux内核源码分析十 邻居子系统分析一 概述通用邻居框架
  3. 【原创】erlang 模块之 application
  4. C语言 函数指针 - C语言零基础入门教程
  5. 理论基础 —— 排序 —— 堆排序
  6. 自己动手写Docker系列 -- 5.1实现容器的后台运行
  7. linux route配置网关,Linux使用route配置路由
  8. H5与客户端交互的方式有哪些? 怎么做?
  9. 代理设计模式 实现 Retrofit 的 create
  10. C++引用之引用的使用
  11. Kubernetes API的流编解码器StreamSerializer
  12. 自然语言处理之语料库
  13. MC9S12相关模块
  14. 去掉whatsns问答系统页面底部隐藏的官网链接
  15. 灾备系统与备用服务器区别,服务器灾备方案是什么
  16. 什么是jsf_什么是JSF? JavaServer Faces简介
  17. 传Apple开发TD版iPhone,使用Marvell方案
  18. C++播放音频mav文件和mp3文件
  19. 华为畅享10s值得买吗_【华为畅享10S怎么样华为畅享10s评测】屏幕_摘要频道_什么值得买...
  20. JDK动态代理(通俗易懂,小白首选)

热门文章

  1. java画太极加图片_Android 画一个太极图实例代码
  2. 双足竞走机器人的意义_双足竞走机器人设计1
  3. 《产品设计与开发(原书第5版)》——2.6 产品开发组织
  4. Android2.3触摸屏功能详解
  5. Docker概述与基本使用
  6. 【SQL注入】SQL注入基本流程
  7. 小程序 canvas 实现电子签名
  8. 【测控电路】信号分离电路 二阶滤波器 RC滤波电路
  9. 【LeetCode - 159】至多包含两个不同字符的最长子串
  10. Debian6.0安装后系统基本配置