请问如何将剪贴板中的数据(图象)转换成图像并保存或显示出来呢?

时间:2021-06-10 11:01:59
我在某一软件中使用鼠标拉出一块区域(该区域可能会超过一个屏幕的大小),再用它的剪贴图像的功能将其拷贝到剪贴板中,现在我想用编程的方法实现将此剪贴板中的数据(不知是何格式)还原成图象的格式,并能显示在屏幕上或者能将其以.gif的形式保存到磁盘上,请问能否做到?

另外,我如果将剪贴板中的内容直接粘贴到画图程序中,为何会出现只粘贴出当前屏幕能显示的区域,我明明选择的区域是比显示的区域大很多的?

谢谢

10 个解决方案

#1


画图程序功能太弱。使用 acdsee吧。

#2


补充一下:画图程序也能做到的。
你ctrl+v 粘贴时,它会问你是否要扩大图片来容纳,此时回答是就行了。

#3


看看image类里有没有方法可以实现

#4


我是想在程序中用C#来完成,如何做呢

#5


这编文章解决了你的问题:
http://www.codeproject.com/csharp/dotnet_clipboard.asp
主要思路:使用ClipBoard类!
源码:
using System;
using System.Drawing;
using System.WinForms;

public class MyClipboardApp
{
    public static void Main(string[] args)
    {
        IDataObject d = Clipboard.GetDataObject();

        if(d.GetDataPresent(DataFormats.Bitmap)) {
            Bitmap b = (Bitmap)d.GetData(DataFormats.Bitmap);
            b.Save(@"c:\mybitmap.bmp");
            Console.WriteLine("Bitmap saved to disk!!");
        } else {
            Console.WriteLine("No bitmap information was contained in the clipboard.");
        }
    }    

}

#6


谢谢,但为何剪贴板只能保存一个屏幕的内容,如果内容超过一屏的话,为何会将其它的给切掉了呢?痛苦中

#7


有这样的事??
有可能你的图片太大了吧?

#8


不是图片太大,超过一屏的话,它就将屏幕以外的部分切除,救救我吧!

#9


可以肯定不是剪切板的问题,
刚才我刚在800*600的机器上面copy paste了一个1000*800的bmp,你的那个什么程序呢?是不是它的问题?

#10


你在那个程序里面copy paste会不会达到你想要的效果??

#1


画图程序功能太弱。使用 acdsee吧。

#2


补充一下:画图程序也能做到的。
你ctrl+v 粘贴时,它会问你是否要扩大图片来容纳,此时回答是就行了。

#3


看看image类里有没有方法可以实现

#4


我是想在程序中用C#来完成,如何做呢

#5


这编文章解决了你的问题:
http://www.codeproject.com/csharp/dotnet_clipboard.asp
主要思路:使用ClipBoard类!
源码:
using System;
using System.Drawing;
using System.WinForms;

public class MyClipboardApp
{
    public static void Main(string[] args)
    {
        IDataObject d = Clipboard.GetDataObject();

        if(d.GetDataPresent(DataFormats.Bitmap)) {
            Bitmap b = (Bitmap)d.GetData(DataFormats.Bitmap);
            b.Save(@"c:\mybitmap.bmp");
            Console.WriteLine("Bitmap saved to disk!!");
        } else {
            Console.WriteLine("No bitmap information was contained in the clipboard.");
        }
    }    

}

#6


谢谢,但为何剪贴板只能保存一个屏幕的内容,如果内容超过一屏的话,为何会将其它的给切掉了呢?痛苦中

#7


有这样的事??
有可能你的图片太大了吧?

#8


不是图片太大,超过一屏的话,它就将屏幕以外的部分切除,救救我吧!

#9


可以肯定不是剪切板的问题,
刚才我刚在800*600的机器上面copy paste了一个1000*800的bmp,你的那个什么程序呢?是不是它的问题?

#10


你在那个程序里面copy paste会不会达到你想要的效果??