사용자가 이미지를 설정할 수있는 곳을 가능한 한 사용자가 쉽게 제어 할 수있는 컨트롤을 개발 중입니다. 복사 & 붙여 넣기를 지원하므로 & 드롭을 드래그하십시오.Image/ImageSource/Interop 이미지 bytearray
나는 FileDrop의 fileformats, 된 FileContents (예를 들면 전망에서)에 대한 테스트 IDataObjects를 사용하여 작업이 부분을 가지고, 비트 맵 예를 들면 :
private void GetImageFromIDataObject(IDataObject myIDO)
{
string[] dataformats = myIDO.GetFormats();
Boolean GotImage = false;
foreach (string df in dataformats)
{
if (df == DataFormats.FileDrop)
{
// code here
}
if (df == DataFormats.Bitmap)
{
// Source of my problem here... this gets & displays image but
// how do I then convert from here ?
ImageSource myIS = Utilities.MyImaging.ImageFromClipboardDib();
ImgPerson.Source = myIS;
}
}
}
ImageFromClipboard 코드는 토마스 레베의로에 대한 대답에서 참조 이 SO 질문 wpf InteropBitmap to bitmap
http://www.thomaslevesque.com/2009/02/05/wpf-paste-an-image-from-the-clipboard/
상관없이 내가 ImgPerson에 이미지를 얻을이 부분이 잘 작동 방법; 이미지가 멋지게 표시됩니다.
저장을 누르면 이미지를 bytearray로 변환하고 서버에 저장 한 WCF 서버로 보내야합니다. bytearray를 이미지로 재구성하고 폴더에 저장하십시오.
모든 형식의 드래그 & 드롭에 복사 & 붙여 넣기 이미지는 System.Windows.Media.Imaging.BitmapImage의 일부 양식입니다.
토마스의 코드를 사용하는 클립 보드를 사용하는 경우를 제외하고는 System.Windows.Media.Imaging.BitmapFrameDecode가됩니다. 나는 토마스의 코드를 사용하지 않도록 경우
는 :
BitmapSource myBS = Clipboard.GetImage();
ImgPerson.Source = myBS;
을 나는 System.Windows.Interop.InteropBitmap를 얻을.
나는이 작업 방법을 알 수 없다. 그들을 bytearray로 가져 와서 재건축과 폴더 저장을 위해 WCF에 전달할 수 있습니다.
이전에 BitmapImage myBI = ImgDriver.Source를 BitmapImage로 시도했는데 이로 인해 null이 발생했습니다. 그래서 캐스트가 작동하지 않았다. 내일까지 답변을 테스트 할 수는 없지만 두 옵션 모두 암시 적 캐스트에서 null이 계속 발생한다고 생각합니다. – andrew