문제

사진 상자가 있고 아래에서 Snipet을 사용하면 다음과 같습니다.

Clipboard.SetImage(PictureBox.image)

그런 다음 이미지를 페인트 및 MS 단어와 같은 것에 만 붙여 넣을 수 있습니다. 파일로 폴더/데스크탑에 붙여 넣을 수 없습니다.

그렇다면 이미지를 클립 보드에 어떻게 복사 할 수 있고 폴더에 붙여 넣으면 파일이됩니다.

도움이 되었습니까?

해결책

.NET을 사용하고 있고 궁극적 인 목표는 파일을 저장하는 것이 더 쉬운 방법이 있습니다.

여기서 C#의 코드는 vb.net으로 포팅하는 것이 어렵지 않을 것입니다. 나는 그렇게하기에는 너무 게으르다 :) 어쨌든, 당신은 그것을 붙여 넣기 전에 어딘가에 저장해야합니다 ... ...

파일을 사진 상자에로드하고 다시 파일에 저장하고 (Lame, I Know) 클립 보드 데이터를 사본 작업으로 설정합니다.

그런 다음 (ctrl+v) 붙여 넣으면 붙여 넣습니다.

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>

그리고 Viola는 폴더에 붙여 넣는 것을 시도합니다. image2.bmp는 붙여 넣습니다.

다른 팁

기본적으로 @ViveK가 게시했지만 VB로 포팅되었습니다. 이것이 당신을 위해 효과가 있다면 그의 투표. 당신이 이해해야 할 것은 Explorer는 객체가 아니라 파일을 붙여 넣을 수 있다는 것입니다 (어쨌든 Afaik). 그 이유는 이미지 데이터를 클립 보드에 복사하면 어떤 형식을 붙여야합니까? PNG, BMP, JPG? 어떤 압축 설정? @vivek가 말했듯이, 당신은 그것들을 생각하고, 시스템 어딘가에 자신의 파일을 만들고 사용합니다. SetFileDropList 임시 파일을 클립 보드에 추가합니다.

'   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)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top