Question

J'ai une zone d'image, et si je l'utilise snipet ci-dessous:

Clipboard.SetImage(PictureBox.image)

Alors je ne peux coller l'image dans des choses comme la peinture et le MS Word. Je ne peux pas le coller comme un fichier dans un dossier / bureau.

Alors, comment puis-je copier l'image dans le presse-papiers et si obtient collé à un dossier, puis il devient un fichier?

Était-ce utile?

La solution

Si vous utilisez .net et votre but ultime est d'enregistrer le fichier, il y a beaucoup plus facile,

Voici le code en C #, le portage dans VB.net ne sera pas difficile, je suis trop paresseux pour le faire :) Quoi qu'il en soit, vous ne devez enregistrer quelque part avant de pouvoir coller alors ...

Il charge le fichier dans la boîte de l'image et il enregistre à nouveau dans un fichier, (boiteux, je sais)  et définir les données du presse-papiers comme une opération de copie

puis lorsque vous collez (Ctrl + V), il se collé.    

C#
__
    Bitmap bmp;
    string fileName=@"C:\image.bmp";
    //here I assume you load it from a file, you might get the image from somewhere else, your code may differ

pictureBox1.Image=(Image) Bitmap.FromFile(fileName); bmp=(Bitmap)pictureBox1.Image; bmp.Save(@"c:\image2.bmp"); System.Collections.Specialized.StringCollection st = new System.Collections.Specialized.StringCollection(); st.Add(@"c:\image2.bmp"); System.Windows.Forms.Clipboard.SetFileDropList(st); </pre>

et alto essaie de coller dans un dossier sera collé le fichier image2.bmp.

Autres conseils

Voici essentiellement ce que @Vivek affiché, mais à VB porté. Up-voix son si cela fonctionne pour vous. Ce que vous devez comprendre est que l'explorateur ne vous permettra de coller des fichiers, et non pas des objets (AFAIK de toute façon). La raison en est parce que si vous copiez des données d'image dans le presse papier, quel format doit-elle coller? PNG, BMP, JPG? Quels sont les paramètres de compression? Ainsi, comme l'a dit @Vivek, vous devez penser les plus, créez un fichier sur votre propre quelque part sur le système et utiliser SetFileDropList qui ajoutera le fichier temporaire dans le presse papier.

'   Add it as an image
    Clipboard.SetImage(PictureBox1.Image)

    'Create a JPG on disk and add the location to the clipboard
    Dim TempName As String = "TempName.jpg"
    Dim TempPath As String = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.Temp, TempName)
    Using FS As New System.IO.FileStream(TempPath, IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.Read)
        PictureBox1.Image.Save(FS, System.Drawing.Imaging.ImageFormat.Jpeg)
    End Using
    Dim Paths As New System.Collections.Specialized.StringCollection()
    Paths.Add(TempPath)
    Clipboard.SetFileDropList(Paths)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top