如何直接将内存中的图片数据压缩成jpg格式?

saillovemeng 2008-05-13 11:39:36
使用Image..Save"a.jpeg",ImageFormat.Jpeg);可以把图片存储为jpeg格式的文件

请问现在我想直接把屏幕抓图的图片在内存中就将其压缩为jpeg格式,要怎样做?

...全文
1059 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ki1381 2008-05-13
  • 打赏
  • 举报
回复
貌似有个重载可以存成Stream的,不记得了,得查下
saillovemeng 2008-05-13
  • 打赏
  • 举报
回复
可能表达有问题,其实我重点不在如何获得这些数据,
我可以获得图像的数据流,也可以生成图片
我是想把图像的数据流压缩的小一点,然后直接传给对方机器,而不生成图片。
但是我现在找不到直接把图像的数据流压成jpg的方法,

是不是要直接照jpeg压缩算法,然后直接压缩这些流,c#中有没有直接把图片流压缩城jpeg的方法?
大飞飞虫 2008-05-13
  • 打赏
  • 举报
回复
你可能理解有问题, 屏幕抓图的确是在内存中没错, 但是你无从得知他的地址. 也就无法读取. 除非你是自己设计的截图, 不使用WINDOWS自带的截图功能.

你的思路应该转到如何从剪贴板来获取这些数据, 把它转成流,然后就好保存了.
yagebu1983 2008-05-13
  • 打赏
  • 举报
回复
关注!!
csdnshao 2008-05-13
  • 打赏
  • 举报
回复
这一行有问题:
byte[] bytes = new byte[stream.Length];
===〉 byte[] bytes = new byte[stream.Length-1];

csdnshao 2008-05-13
  • 打赏
  • 举报
回复
可能文件流位置有误,其实不必要那么麻烦。

Bitmap bm = new Bitmap(@"c:\1\aab.jpg");

System.Drawing.Image img = bm ;
img.Save(@"c:\1\" + textBox1.Text + ".jpeg"); '保存为文件
saillovemeng 2008-05-13
  • 打赏
  • 举报
回复
我用这样测试

MemoryStream spic = new MemoryStream();

Bitmap bm = new Bitmap(@"c:\1\aab.jpg");
bm.Save(spic, ImageFormat.Jpeg);
StreamToFile(spic, @"c:\1\" + textBox1.Text + ".jpeg");
}
public void StreamToFile(Stream stream, string fileName)
{
// 把 Stream 转换成 byte[]
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
// 设置当前流的位置为流的开始
stream.Seek(0, SeekOrigin.Begin);

// 把 byte[] 写入文件
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();
fs.Close();
}

可是生成出来的图片显示不了,是什么原因??
AechoJohn 2008-05-13
  • 打赏
  • 举报
回复
Image.Save (Stream, ImageFormat)
AechoJohn 2008-05-13
  • 打赏
  • 举报
回复
Image.Save (Stream, ImageCodecInfo, EncoderParameters)
[14本经典Android开发教程]-3-Android SDK 文开发文档 什么是 Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,间件和一些重要的应用程序。Beta版的 Android SDK 提供了在Android 平台上使用JaVa语言进行Android应用开发必须的工具和API接口。 特性 · 应用程序框架 支持组件的重用与替换 · Dalvik 虚拟机 专为移动设备优化 · 集的浏览器 基于开源的WebKit 引擎 · 优化的图形库 包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) · SQLite 用作结构化的数据存储 · 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) · GSM 电话技术 (依赖于硬件) · 蓝牙Bluetooth, EDGE, 3G, 和 WiFi (依赖于硬件) · 照相机,GPS,指南针,和加速度计(accelerometer) (依赖于硬件) · 丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集开发环境插件 Android 架构 下图显示的是Android操作系统的主要组件。每一部分将会在下面具体描述。 已上传2本: [14本经典Android开发教程]-1-Android开发从入门到精通http://download.csdn.net/detail/cleopard/8355245 [14本经典Android开发教程]-2-Android开发手册—API函数详解 http://download.csdn.net/detail/cleopard/8374487 剩余11本稍后上传!@或直接从这里寻找@ http://download.csdn.net/user/cleopard/album @更多@ http://cleopard.download.csdn.net/ 福利 http://xuemeilaile.com 17份软件测试文档 http://download.csdn.net/album/detail/1425 13份WPF经典开发教程 http://download.csdn.net/album/detail/1115 C#资料合辑二[C#桌面编程入门篇] http://download.csdn.net/album/detail/957 C#资料合辑一[C#入门篇] http://download.csdn.net/album/detail/669 [Csharp高级编程(第6版)](共8压缩卷) http://download.csdn.net/album/detail/667 10个[精品资源]Java学习资料合辑[一] http://download.csdn.net/album/detail/663 10个C#Socket编程代码示例 http://download.csdn.net/album/detail/631 6份GDI+程序设计资源整合[全零分] http://download.csdn.net/album/detail/625 2014年移动游戏行业数据分析 http://download.csdn.net/detail/cleopard/8340331 一文读懂2014年全球互联网广告新生态 http://download.csdn.net/detail/cleopard/8340303

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧