2010-03-15 3 views
2

이미지를 복제하고 바이트 배열로 변환하면 EDIT.COM이 Windows XP 컴퓨터에서 열리는 것으로 나타납니다. 이것은 Windows 7 시스템에서는 발생하지 않습니다. 이 응용 프로그램은 C# .NET 2.0 응용 프로그램입니다. 왜 이런 일이 일어날 지 아무도 모른다. 여기 C# Image.Clone to byte []가 Windows XP에서 EDIT.COM을 엽니 다.

내 이미지 변환 코드 :

저스틴

 public static byte[] CovertImageToByteArray(Image imageToConvert) 
    { 
     imageToConvert.Clone() as Image; 

     if(clone == null) 
      return null; 

     imageToConvert.Dispose(); 

     byte[] imageByteArray; 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      clone.Save(ms, clone.RawFormat); 
      imageByteArray = ms.ToArray(); 
     } 

     return imageByteArray; 
    } 


    public static Image ConvertByteArrayToImage(byte[] imageByteArray, 
               ImageFormat formatOfImage) 
    { 
     Image image; 

     using (
      MemoryStream ms = new MemoryStream(imageByteArray, 0, 
               imageByteArray.Length)) 
     { 
      ms.Write(imageByteArray, 0, imageByteArray.Length); 
      image = Image.FromStream(ms, true); 
     } 

     return image; 
    } 

감사

+2

그것은 하나 개의 특정 이미지인가? 이미지의 형식이 잘못되어 익스플로잇/쉘 코드가있을 수 있습니다. – Broam

+0

아니요 이미지가 없습니다. 몇 가지 다른 기계에서 몇 가지 다른 것들을 시험해 보겠습니다. – JayDial

+0

이미지 형식 : System.Drawing.Image – JayDial

답변

1

우리가 간다, 그래서 여기에 여기 추측하지 않고 도움이 어렵다 :

어딘가에 코드에서 당신 또는 외부 라이브러리는 "edit.exe"라는 외부 도구를 사용하거나 호출합니다. 어쩌면 신은 금지하고 심지어 데이터베이스에서 방아쇠를 당긴 것도 있습니다. 프로그래머는 확장 기능을 신경 쓰지 않고 Process.StartInfo에 "edit foo.bar"를 썼다. 당신의 PATH와 해상도의 순서 (exe 전에 com) 때문에이 컴퓨터에서 edit.com을 호출하게됩니다.

글쎄 - 이것은 인공적인 이야기 일 뿐이지 만, 내가 준 코드로 어떤 앱을 시작하는 방법을 상상할 수는 없습니다. 이런 일이 일어나는 정확한 장소를 확인하십시오. 나는 이것이 당신이 보여준 코드/코드 일지 의심 스럽다.

+0

이것은 정확히 내가 찾던 답변 유형입니다. 고맙습니다. – JayDial

1

많은 파기 후에 DevExpress에서 HyperlinkEdit으로 진행되는 이상한 것으로 밝혀졌습니다. 텍스트 값이 "편집"으로 설정되었습니다. 나는 그것을 "Edet"로 이름을 바꾸었고 문제는 사라졌습니다. 나는이 것을 DevExpress에보고하여 추가 평가를 할 것입니다.

모두에게 감사,

저스틴

+0

OMG는 실제로 나쁜 코드를 냄새 맡습니다. DevExpress에 수치 스러움. –

관련 문제