그것은 문제가 관리되는 리소스를 사용하여이었다 밝혀 - RESX 빌더가 비트 맵을 이미지 파일에서 객체를 생성하고 그 객체를 직렬화, 그것은 원본 파일 스트림를 저장하지 않습니다. 그러나 임베디드 리소스에는 플랫 바이너리 파일을 저장할 수 있습니다.
것은 이제 다음 .csproj
항목을 사용하여 폴더 내 이미지에서 모든 파일을 내장하고있다 :
<EmbeddedResource Include="Images\*.jpg" />
<EmbeddedResource Include="Images\*.png" />
<EmbeddedResource Include="Images\*.gif" />
비주얼 스튜디오가 정상적으로에서 프로젝트 파일 Embedded Resource
에 Build Action
세트를 보여줍니다.
그럼, 내 코드에서, 나는 원래 파일 스트림로드 :
var assembly = GetType().Assembly;
var regex = new Regex("\\.(png|jpg|gif))$");
foreach (var bitmap in assembly.GetManifestResourceNames())
{
if(!regex.IsMatch(bitmap)
continue;
var stream = assembly.GetManifestResourceStream(bitmap);
//handle the stream here
}
나는 또한 .JPG 및 .gif 참고를 저장하고있어, 그리고 이미지 파일은 그래픽 디자이너가 상당히 많이 최적화되어 있습니다. 하지만 지금 사용하는 솔루션 (및 작동하는 솔루션)은 관리되는 대신 내장 된 리소스를 기반으로하며 작성한대로 작동합니다. – skolima