2012-10-26 7 views
0

작업 : 나는 주어진 GIF 파일을로드하고 픽셀의 RGBA 배열로 돌려 수있는 C++ 헤더 파일을 작성하려는GIF로드 클래스를 구현하는 가장 좋은 방법은 무엇입니까?

.

문제점 :

나는 (예 : 주석으로) 특정 블록 어디서나 파일에 발생할 수 있기 때문에 혼동 사양을 읽으려고 발견. 나는 또한 다른 GIF 파일을로드하기위한 소스 코드를 읽으려고 시도했지만 이것 또한 매우 혼란 스럽다. 나는 그것을위한 코드를 작성하려고 시도했지만, 끔찍한 잘못이 된 후에 나는 그것을 삭제하고 그것이 필요하지 않았기 때문에 그것을 시도하는 것을 연기했다. 그것은 지금이다.

제한 사항 :

나는 외부 라이브러리를 사용하지 않으 내가 무슨 일이 일어나고 있는지 이해 할 또는 미리 만들어진 코드 (제안 부스트는 여기 진부의 비트가), 그러나 특히 다음과 같은 이유로 내 자신의 코드를 작성하는 것이 좋습니다.

  1. 잘못 되었다면 코드를 복구 할 수 있습니다.
  2. 그래서 기능을 확장하고 기존의 다른 클래스와 통합 할 수 있습니다.
  3. 라이센스 문제를 피하려면 다음을 수행하십시오.
    • 오용으로 인해 고소 당하지 않습니다 (지불하지 않거나 코드 소스를 공개하지 않아도 됨).
    • 그래서 저작권/카피 레프트 문제없이 프로그램을 번들로 묶거나 판매 할 수 있습니다.
    • 다른 사람들에게 안전하게 코드를 제공하고 라이센스에 대해 걱정할 필요가 없다고 말할 수 있습니다.
    • GIF 로딩이 부족한 라이브러리에 코드를 제공하여 라이센스 문제를 염려하지 않고 사용할 수 있습니다.
  4. 다른 기능의 라이브러리와 비교하여 코드베이스를 작게 유지합니다.

나는 그것이 매우 목록의 불필요한 것 같다하지만 난 이전 스택 오버 플로우에 말할 때 '더 라이브러리'사람들은 그들이 제출로 나를 주장 또는 내 목구멍 라이브러리를 강제 할 수있는 옵션 뭔가 가정 알고있다.

질문 : 그것은 단일 이미지 또는 일련의 이미지가 될 수있는 GIF를 (변환 있도록

가장 좋은 방법은 모두 무엇 이해 (I 혼란 기억 사양을 발견)와 GIF 로딩을 구현) 픽셀 배열에? 그리고 독서를 할 때 '불필요한'데이터를 무시하는 것이 가장 좋은 방법입니다 (적어도 현재의 작업과 관련하여 의견을 무시하는 등).

편의상 픽셀 배열 클래스가 이미 있다고 가정 할 수 있습니다.

설명이 포함 된 명확한 코드 스 니펫이 여기에 표시됩니다.

+3

진지하게, 그냥 해보십시오. 외부 라이브러리를 사용하지 않으려면 바이너리 파일을 해석하는 코드를 작성해야합니다. 이를 위해서는 사양을 이해해야합니다. 아무도 그곳에서 당신을 도울 수는 없습니다. 그걸 이해하고 일치시킬 코드가 필요합니다. 한 번 더 해보고 기존 구현을 살펴보십시오. 스펙을 읽는 법을 알려주지는 못합니다. – Mat

+1

하지만 물론 당신이 스펙에서 이해하지 못하는 것에 관한 질문을 올릴 수는 있습니다. 사람들이 당신을 도와 줄 것이라고 생각합니다. 이 사이트는 구조에 대한 그래픽을 포함하고 있기 때문에 약간 더 도움이 될 것입니다. http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp – AquilaRapax

답변

1

필자는 더 이상 내 의견을 수정할 수 없기 때문에 .... 매트가 제안 했으므로 스펙을 이해하려고 노력하십시오.필자는 제 생각에 많은 그래픽과 바이트 코드 예제와 함께 gif 형식의 구조에 대한 정보를 얻을 수있는 훌륭한 소스이기 때문에 http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp#comment_extension_block 사이트를 권장합니다. 예를 들어, 주석에 대한 질문 : 바이트 - 쌍 21 FE이 데이터 스트림에서 발견되면 주석 블록이 도입됩니다. 다음 바이트는 ASCII 문자를 나타내며 블록 끝에는 00이 있습니다.

관련 문제