파일 font_file.bdf가 있고 각 요소가 하나의 픽셀 인 numpy 배열로 포함 된 문자를 가져와야합니다.BDF 파일의 문자 배열 Nully 배열
다음은 '?'을 정의하는 해당 파일의 스 니펫입니다. 문자 :
STARTCHAR question
ENCODING 63
SWIDTH 1000 0
DWIDTH 6 0
BBX 5 7 0 0
BITMAP
70
88
08
10
20
00
20
ENDCHAR
데이터를 인코딩하는 방법을 이해하기 위해 .bdf 파일을 조사했습니다. 기본적으로 bit-depth가 1 인 비트 맵입니다. bdf 파일을 해석 할 수있는 필 모듈 PIL.BdfFontFile을 발견했습니다. 저장된 이미지는 다음과 같습니다
from PIL.BdfFontFile import BdfFontFile
fp = open("font_file.bdf", "r")
bdf_file = BdfFontFile(fp)
bdf_file.compile()
char = '?'
_, __, bounding_box, image = bdf_file[ord(char)]
image.save(char + ".png")
: 나는 글꼴에서 문자의 각각에 대해 PIL 이미지를 얻을 그렇게처럼 작동하고 있는지를 저장할 수있는 동안이 모듈 A 실험 후 : Question Mark. 그 속성을 살펴봄으로써 의미가있는 비트 심도 1을가집니다. (이 거꾸로 보인다 이유를 잘 모르겠어요,하지만 여전히 필요한 경우 내가 NumPy와 함께 조작의 종류를 할 수 있습니다.)
나는 내가 NumPy와 배열로 변환하려고한다는 한 후 :
print numpy.array(image, dtype=numpy.int)
나에게 더 이상 해당 문자를 나타내는 것으로 보인다 배열을 준
더 이상 :
좀 더이처럼 보였다 뭔가를 기대했다[[1 1 1 1 1]
[0 1 0 1 1]
[1 1 1 1 1]
[1 1 1 1 0]
[1 0 1 0 1]
[1 0 1 1 1]
[0 1 1 1 1]]
:
[[0 1 1 1 0]
[1 0 0 0 1]
[0 0 0 0 1]
[0 0 0 1 0]
[0 0 1 0 0]
[0 0 0 0 0]
[0 0 1 0 0]]
최악의 경우, 필자는 PIL 이미지의 데이터를 numpy 배열로 변환하는 알고리즘을 직접 만들 수 있지만 PIL 이미지와 numpy 배열 간의 변환에 대한 내 과거 경험에 비해 쉬운 방법이 있어야한다고 생각합니다. (대개는 아주 간단합니다.)
PIP 이미지를 제대로 배열로 변환하거나 내 문제에 대한 다른 해결책을 얻는 방법에 대한 아이디어는 감사하겠습니다.
그것 numpy 배열에? – Anonymous
@jphollowed, 물음표처럼 보입니다 (문자의 픽셀이 흰색으로 표시되고 배경이 검정색 임에도 불구하고). 매우 작은 이미지이므로 볼 수 없지만 이미지가 첨부되어 있습니다. –
아니요 여행 변수'image'는 인쇄물이 – Anonymous