2010-07-09 2 views
0

전달하면 이미지가 바이트 배열을 벗어나지 않게하려면 올바른 바이트 배열을 MemoryStream으로 전달할 것입니다.올바른 BytesArray를 MemoryStream에 Image

MemoryStream mStream = new MemoryStream(); 
mStream.Write(byteArray, 0, byteArray.Lenth); 
Image imgObj = Image.FromStream(mStream); 

어떻게 수 I, 가능하면 올바른는 이미지에 대한 올바른 BYTEARRAY이라는 BYTEARRAY?

답변

0

여기에 답을 Image Processing for Dummies with C# and GDI+

OT있어 : 난 내가 대답에 넣어 코멘트에 링크를 넣어하는 방법을 모르겠어요.

+0

팁을 주셔서 감사합니다. 일반적인 질문과 동일한 구문을 사용합니다. 하지만 기본 링크를 사용하는 대신 고급 링크 버전을 [documentation] (http://stackoverflow.com/editing-help)에서 가져와야합니다. 그래서''[Image Processing ...] (http : // ...)'라고 쓰십시오. – Oliver

0

이것은 정말 불길한 질문입니다. 반드시 데이터를 어디에서 읽어야하는지 알고 있어야합니다. Image.FromStream을 사용하여 이미지를 만들 때 형식을 인식 할 수없는 경우 ArgumentException이 표시됩니다. 휠을 다시 발명하기보다는 데이터의 잘못된 스트림을 확인하기 위해이 메커니즘을 사용하지 않는 이유는 무엇입니까?

+0

예 내가 어디에서 내 데이터를 읽는 지 알지만, (일부를 추가하고 일부를 얻으려고) 조작 한 결과로 생성 된 바이트를 얻으 려하므로'ArgumentException'을 얻지 만 수정이 가능합니다. byteArray? –

+0

솔직히 바이트 배열이 손상된 방법에 대한 광범위한 지식이 없으면 어떻게 해결할 수 있는지 알 수 없습니다. 이것은 물론 형식에 따라 다릅니다. 당신은 바이트 배열 자체를 분석 할 수있는 일종의 프레임 워크/응용 프로그램이 필요하다고 생각합니다. 나는 쉽게 달성 할 수 있다고 생각하지 않습니다 ... –

+0

정보를 보내 주셔서 감사합니다. –

0

저는 프로그램적인 이미지 조작을 직접했습니다. 당신이하고 싶은 일은 당신이 수정하고있는 이미지 포맷에 대한 스펙을 찾아야하고, 당신이해야하는 모든 것을해야한다는 것입니다. 예를 들어 png 파일은 청크로 처리되어 각 섹션에 체크섬이 있으므로 해당 청크에서 무언가를 변경하면 섹션의 끝에있는 체크섬을 다시 계산해야합니다.

0

귀하의 질문과 의견을 읽은 후, 나는 당신이 Image 클래스에 넣기 전에 바이트 배열을 조작하여 이미지를 조작하는 것이라고 생각합니다. 그리고 이제이 이미지 형식과 바이트를 수정할 수있는 방법에 대해 바이트 배열이 손상되었다고 주장합니다.

그래서이 질문에 대한 대답은 다음과 같습니다. 당신이 그것을 부패 시켰을 것입니다.

그러나 실제로 문제를 해결하려면 그림 자체를 조작하는 것이 목표 인 경우 Image 중간에로드하고 Graphics 클래스를 사용하여 그림을 조작하십시오. 그런 다음 결과를 실제 이미지 객체에 넣습니다. 준비, 바이트 배열 작업에 대한 번거 로움없이.

+0

해결책을 찾았습니다. 이 기사에서는 C# 및 GDI +를 사용하여 Dummies를위한 이미지 처리에 대해 읽었으며 GDI +를 사용하여 바이트를 통해 직접 포인터를 조작합니다. Oliver –