2011-09-29 4 views
0

모바일 응용 프로그램을 개발하려고하는데 이미지를 텍스트 파일로 변환 한 다음 나중에 다시 만들 수있는 방법이 궁금합니다. 메모리는 텍스트를 말했다. 문제의 이미지는 16 개 또는 그 이상의 색상을 포함하지 않으므로 문제가 없습니다.이미지 압축 알고리즘 - 이미지를 사각형으로 컬러로 나누기

기본적으로이 솔루션을 사용하려면 각 개인의 픽셀 색상 데이터를 파일로 저장해야합니다. 그러나 이것은 거대한 파일로 귀결됩니다. 더 좋은 방법이 있다는 것을 알고 있습니다. 이미지의 거대한 부분이 같은 색으로 구성되어 있으면이 영역을 작은 사각형과 직사각형으로 나누고 좌표와 크기를 파일로 저장하십시오.

다음은 예입니다. 이미지는 흑백입니다. 큰 색상 상자는 출력 된 텍스트 파일의 이론적 인 '데이터 포인트'를 나타냅니다. 이 상자는 원산지, 크기 및 색상을 명시해야합니다.

예 : 상단 상자의 원점은 0,0이고 크기는 359,48이며 검정색을 나타냅니다. 텍스트 파일에 저장되어있는 데이터는 00359480입니다.

sample algorithm output

이 알고리즘의 어떤 것입니까?

참고 : 사용중인 SDK는 X, Y 좌표에서 픽셀의 색을 반환 할 수 없습니다. 그러나 텍스트 파일에서 프로그램에 외부 정보를로드하고 그런 식으로 조작 할 수 있습니다. 텍스트 파일로 내보내는 데 필요한이 데이터는 X, Y 좌표에서 픽셀의 색을 얻을 수있는 다른 유틸리티에서 가져온 것입니다.

편집 : 사진 EDIT2을 추가 : 추가 제약

+4

PNG 또는 GIF? 이미지 압축을 재발견 할 필요가 없습니다. –

+2

이미지 (또는 그 부분)를 일반 텍스트로 저장하려는 이유에 대해 자세히 설명해 주시겠습니까? 대신 이진 표현을 사용할 수 있습니까? 또한 이미지에 일반적으로 동일한 색상의 연속 픽셀이 많이있는 경우 RLE (Run-Length Encoding)를 사용하는 것이 좋습니다. 또는 Lempel-Ziv-something 압축 알고리즘 중 하나 (LZ77, LZ78, LZW)를 사용할 수 있습니다. –

+0

문제는 이미지 자체가 아닙니다. 사용중인 SDK입니다. SDK 내에서 이미지 자체에서 특정 픽셀의 색상을 얻을 수있는 방법은 없습니다. 따라서 데이터를 텍스트 파일로 변환하여 앱에로드하고 조작 할 수있는 솔루션을 찾아야합니다. –

답변

1

왜 이미지 (또는 그 부분)를 일반 텍스트로 저장 하시겠습니까? 대신 이진 표현을 사용할 수 있습니까? 또한 이미지에 일반적으로 동일한 색상의 연속 픽셀이 많이있는 경우 RLE (Run-Length Encoding)를 사용하는 것이 좋습니다. 또는 Lempel-Ziv-something 압축 알고리즘 중 하나 (LZ77, LZ78, LZW)를 사용할 수 있습니다.

0

을 압축 된 형식 (예 : JPEG, PNG, GIF 등)로 이미지를 압축 한 후 .txt 파일 또는 무엇이든로 저장합니다. 이미지를 다시 만들려면 특정 요구 사항에 맞는 라이브러리 함수를 사용하여 파일을 프로그램으로 읽어 들이기 만하면됩니다.

.txt 파일에 텍스트 의미가 필요한 경우 몇 가지 문제가있을 수 있습니다.

0

cs에는 recursivley에 대한 공간 인덱스와 같은 알고리즘이있어 평면을 4 개의 타일로 세분화합니다. 셀의 크기가 같으면 쿼드 트리처럼 보입니다. 비행기를 패턴 (색상)으로 세분하려면이 타일링 아이디어를 사용하여 셀 크기를 동적으로 변경할 수 있습니다. 살펴볼 좋은 시작은 z 곡선 또는 힐버트 곡선입니다.

관련 문제