2010-05-04 2 views
1

소형 프레임 워크 응용 프로그램에서 큰 이미지 (200 DPI의 A4 이미지, PNG 형식이 좋음)를 생성해야합니다. 메모리 제한으로 인해 표준 방식으로 수행하는 것은 불가능합니다 (큰 이미지는 OOMException을 발생시킵니다).컴팩트 프레임 워크에서 큰 이미지를 생성하는 방법

파일 기반 스트림 이미지 생성 기능을 제공하는 라이브러리가 있습니까?

표준 비트 맵 방식을 사용하여 이미지의 여러 작은 줄무늬 (큰 이미지의 행을 나타내는 각 줄무늬)를 생성 할 수 있지만 나중에 병합해야합니다. 많은 작은 이미지를 하나로 병합하는 방법이 있습니까? 큰 비트 맵 인스턴스를 인스턴스화 할 필요없이 대형 (OOM이 다시 발생 함)?

답변

1

난 그냥 PNG 스트림 인코딩 클래스의 빠른 기본적인 구현을했다 - 그것은 비록 순간에 바로 8bpp를 그레이 스케일을 지원하지만 그건 내 시나리오에 충분히입니다 . RGB 및 더 많은 색상 깊이를 지원하도록 클래스를 확장하는 것은 매우 쉽습니다.

http://gist.github.com/393409

1

이것은 흥미 롭습니다 ... 나는 당신을 위해 인터넷 검색을 한 적이 있는데, 내가 찾은 유일한 유용한 정보는 OpenNETCF Smart Device Framework입니다. 클래스 라이브러리 참조는 here입니다. ImagingFactoryClass를 살펴 보도록 제안합니다. CreateImageEncoderToStream 메서드가 유용 할 수 있습니다.

병합 접근법은 라이브러리를 만들면 멋지게 될 것입니다. 나는 PNG 규격을 보았고 그다지 유망하지는 않았다.

행운을 빈다. 나는 이것이 도움이되기를 바란다.

+0

것은 이미 OpenNetCF SDF를 사용하지만, CreateImageEncoderToStream 방법을 간과하고있다. 그것에 대해 살펴보고 다시 진행 상황을보고합니다. – Buthrakaur

2

나는 비슷한 필요를 가지고 있었고, 나는 내 자신의 서재를 쓰기 시작했다. PNGJ 유용 할 것입니다. Java이지만 C#으로 포팅 (다른 라이브러리와 완전히 별개)해야합니다. 거대한 이미지를 처리하기에 최적화 된 PNG 이미지 (팔레트를 제외하고)를 씁니다. 다운로드에 몇 가지 예가 있습니다.

업데이트 : 내가 여기에 사용할 수있는 C# .NET을했습니다 : PNGCS

+0

유망 해 보입니다. 문제를 해결하는 방법을 찾지 못하면 .Net으로 다시 작성하려고합니다. 감사 – Buthrakaur

관련 문제