想把一个自己生成的org.eclipse.swt.graphics.Image存到一个数据流或文件中,但是没有似乎Image没有写到文件中的API。
查到AWT的ImageIO有个Write()函数,可惜是AWT的。
发现org.eclipse.swt.graphics.ImageLoader提供save功能,既可以把它存到数据流中,也可以存到文件中。但是它的Load()函数只提供FileName和InputStream这两种参数。
郁闷。
ImageLoader的data[] 竟然是public,那就意味着把源Image的ImageData赋值给它,它的Save()照样可用了。
ImageData imageData = sourceImage.getImageData( );
ImageLoader imageLoader = new ImageLoader();
imageLoader.data = new ImageData[1];
imageLoader.data[0] = imageData;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
imageLoader.save( outputStream, SWT.IMAGE_JPEG );
这样,就把sourceImage以JPEG格式存到数据流outputStream中了。
从SWT Newsgroup上得知,这种方法有一定局限。如果一个Composite在画面以外,那么在画面以外的部分是不会绘出来。如果这个Composite在画面以内,但是它是不可见的(Visual 为false),画到Image中的内容也不是希望中的Composite。
原文:http://dev.csdn.net/author/ZiJinShi/1e55f021df2346f38ee5165b8f2ef573.html
分享到:
相关推荐
在某些情况下,我们可能需要将一个`InputStream`的数据传递给另一个`OutputStream`。这可以通过创建一个临时缓冲区实现,例如使用`BufferedInputStream`和`BufferedOutputStream`,或者使用`IOUtils`类(来自Apache...
在这种情况下,可能需要先将`OutputStream`的内容刷新到目标(例如文件),然后再创建一个新的`InputStream`来读取该目标。 在实际开发中,`PipedOutputStream`和`PipedInputStream`也可以用来实现输出流和输入流...
SWT 是一个开源的 GUI 工具包,提供了与操作系统原生控件接近的性能和外观。为了在 SWT 应用中使用 JFreeChart,你需要创建一个 `ChartComposite` 对象,然后添加数据和设置样式。例如,创建饼图的基本步骤如下: `...
标题 "java.lang.IllegalStateException: OutputStream already obtain" 涉及到的是Java编程中的一个常见错误,特别是当处理I/O流时。这个异常通常在尝试获取已经存在的OutputStream实例时抛出,表明该输出流已经被...
关于InputStream和OutputStream关于InputStream和OutputStream关于InputStream和OutputStream关于InputStream和OutputStream
Java SWT (Standard Widget Toolkit) 是一个用于创建原生GUI(图形用户界面)的应用程序开发框架,它是Java AWT和Swing之外的一个选择。SWT设计的目的是提供更高效的、与平台相关的GUI组件,使得Java应用程序可以...
SWT(Standard Widget Toolkit)是Java平台上一个开源的GUI库,它提供了丰富的用户界面组件,用于构建桌面应用程序。SWT的设计目标是提供一种高效、高性能且与操作系统原生界面紧密集成的编程接口。SWT 3.6 API 是该...
发送网络字节流 pack stream php
这通常涉及到创建一个输出流 (`OutputStream`),并将读取到的数据逐字节地写入到文件中。 **代码示例**: ```java OutputStream out = new FileOutputStream("d:/new.jpg"); while ((tmpi = ins.read()) != -1) { ...
Java中OutputStream类数据操作方法.pdf 学习资料 复习资料 教学资源
服务器端创建一个Servlet,重写doPost方法,通过request对象的getPart或getParts方法来获取上传的文件。文件内容会被存储在Part对象中,然后可以通过Part对象的write方法将其保存到服务器的特定位置。 总的来说,...
// 将输入流转储到输出流,如OutputStream os } rs.close(); ``` 8. **源码和工具**: 你提到的"源码"可能是指实现以上功能的Java代码,而"工具"可能指的是JDBC驱动、MySQL数据库、文件操作相关的Java API等。...
IO流是一种基本的数据交换方式,在Java中,IO流是通过输入流(InputStream)和输出流(OutputStream)来实现的。输入流用于读取数据,而输出流用于写入数据。 InputStream是所有输入流的抽象超类,它提供了基本的...
以下是一个简单的文件读写的例子: ```java import java.io.*; public class FileInOut { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("input.txt"); ...
在给定的描述中提到了一个博客链接,虽然具体内容无法在当前环境中查看,但可以推测博主可能分享了一个将 SWT 图像转换为 AWT 图像的方法,因为文件名 "ConvertSWTImagetoAWTImage.java" 暗示了这个过程。SWT...
这个类继承自OutputStream,并且有一个protected类型的成员变量out,它是OutputStream的实例,代表了实际的数据输出目标。FilterOutputStream的主要职责是将用户对它的调用转发到out上,然后在这些调用前后添加...
- Android提供了一个名为`Intent.ACTION_PICK`的 Intent,允许用户从图库或其他图片源中选择图片。首先,你需要创建一个Intent: ```java Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images....
在实际应用中,`HttpWriter`提供了`OutputStream`属性,它返回了一个底层的字节流,可以用于`OutputStream`的实现。通过`HttpWriter`,开发者可以实现文本和二进制数据的混合输出,而`OutputStream`属性则提供了对...
Java将多张图片合成为一张,类似于PhotoShop中的合成图片,将两张图片合成输出为一张JPG,两幅图像叠加在一起,这是个比较基础的Java图像合成的例子。在JAVA中实现图片合成,本例的实现核心代码如下: InputStream...
然后,创建一个`pictureBox`控件作为显示二维码的载体。以下是一个简单的代码示例: ```csharp using ZXing; using ZXing.QrCode; using System.Drawing; // 创建二维码编码器 var writer = new BarcodeWriter { ...