이것은 모든 디스플레이의 핵심 그래픽 라이브러리로 공통 그래픽 프리미티브 세트 (포인트, 라인, 원 등)를 제공합니다. 우리가 가지고있는 각 디스플레이 장치에 대한 하드웨어 별 라이브러리와 짝을 이루어야합니다 (하위 레벨 기능을 처리하기 위해).
Adafruit 은이 오픈 소스 코드를 제공하는 시간과 리소스를 투자합니다. Adafruit에서 제품을 구매하여 Adafruit 및 Open-Source 하드웨어를 지원하십시오!
Adafruit Industries를 위해 Limor Fried/Ladyada가 작성했습니다. BSD 라이센스, 자세한 내용은 license.txt를 확인하십시오. 위의 모든 텍스트는 재분배에 포함되어야합니다.
최근 Arduino IDE 릴리스에는 쉽게 설치할 수있는 도서관 관리자가 포함됩니다. 그렇지 않으면 다운로드하려면 다운로드 zip 버튼을 클릭하고 압축을 막고 압축되지 않은 폴더 adafruit_gfx의 이름을 바꿉니다. adafruit_gfx 폴더에 adafruit_gfx.cpp 및 adafruit_gfx.h가 포함되어 있는지 확인하십시오. adafruit_gfx 라이브러리 폴더를 Arduinosketchfolder/ Libraries/ Folder에 배치하십시오. 첫 번째 라이브러리 인 경우 라이브러리 서브 폴더를 만들어야 할 수도 있습니다. IDE를 다시 시작하십시오.
또한 최신 Adafruit Busio 라이브러리를 설치해야합니다. 도서관 관리자에서 "Adafruit Busio"를 검색하거나 https://github.com/adafruit/adafruit_busio에서 직접 설치하십시오.
Image2Code : 이것은 DrawBitMap 함수로 이미지를 표시하는 데 필요한 배열 코드로 BMP 파일을 변환하는 편리한 Java GUI 유틸리티입니다. Ehubin 's Github Repository : https://github.com/ehubin/adafruit-gfx-library/tree/master/img2code에서 코드를 확인하십시오
DrawXbitMap 함수 : gimp 사진 편집기를 사용하여 .xbm 파일을 저장하고 파일에 저장된 배열을 사용하여 drawxbitmap 함수로 비트 맵을 그릴 수 있습니다. 자세한 내용은 여기에서 풀 요청을 참조하십시오. #31
'Fonts'폴더에는 최근 (1.1 이상) Adafruit_gfx와 함께 사용할 비트 맵 글꼴이 포함되어 있습니다. Arduino 스케치에서 글꼴을 사용하려면 #ininclude .h 파일 및 gfxfont struct의 주소를 setfont ()로 전달하십시오. NULL을 전달하여 '클래식'고정 공간 비트 맵 글꼴로 되돌아갑니다.
'FontConvert'폴더에는 TTF 글꼴을 AdaFruit_GFX 헤더 형식으로 변환하기위한 명령 줄 도구가 포함되어 있습니다.
이 GFX Font Customiser Tool ( 여기서는 웹 버전 )을 사용하여 FontConvert에서 출력을 사용자 정의하거나 수정하고 크기를 최적화하기 위해 문자의 서브 세트만으로 글꼴을 생성 할 수 있습니다.
주요 지침은 기존 Arduino 스케치와의 뒤로 호환성을 유지하는 것입니다. 많은 사람들이 다른 곳에서 호스팅되며 여기에서 변경 사항을 추적하지 않으며 일부는 인쇄되어 있으며 변경할 수 없습니다! 이 "작은"라이브러리는 시간이 지남에 따라 유기적으로 자랐으며 때로는 디자인 코너에 자신을 페인트하고 그와 함께 살거나 점차적으로 더 큰 해결 방법을 추가해야합니다.
우리는 모든 사람의 기여에 감사하지만 다음에 대한 요청은 병합되지 않습니다.
추가 또는 양립 할 수없는 글꼴 형식 (위의 주요 지침 참조). 이미 두 가지 형식이 있으며 코드는 그대로 매우 부풀어 오릅니다. 이것은 또한 도구 및 문서에 대한 부채를 만듭니다. 완벽하지는 않지만 일을합니다.
비슷한 이유로 추가 또는 양립 할 수없는 비트 맵 형식. 지저분 해지고 있습니다.
이전 화면 내용을 지우기 위해 사용자 정의 글꼴에 배경색을 추가합니다. 허용되는 유일한 방법은 채워진 직장으로 영역을 지우거나 (깜박임을 피하기 위해) 텍스트를 gfxcanvas1에 뽑아서 배경색으로 drawbitmap ()로 스크린으로 복사하는 것입니다. 이것은 의도적이고 디자인에 따라입니다. 우리는 이것에 대해 논의했습니다. 글리프는 겹칠 수 있습니다.
하드웨어 또는 소프트웨어 기반이든 스크롤. 이러한 구현은 하드웨어 별 기능 (보편적으로 사용 가능하지 않음), 화면의 프레임 버퍼 (DITTO)에 대한 액세스를 읽거나 GFX의 가상 함수 추가를 읽는 경향이 있으며, 모든 서브 클래스에 추가되어야합니다. GFX API는이 시점에서 주로 "설정"되어 있으며 이것은 우리가 지금 살고있는 한계 일뿐입니다.
재구성 코드를 위해 코드를 개혁하지 마십시오. 그 결과 큰 "시각적 차이"는 단순히 재 배열 된 선에서 실제 버그 수정을 풀기가 불가능합니다. Clang-Format은 최종 중재자가 될 것입니다.
더 이상 오각형을 그리는 PR. 이상한 특정 드로잉 기능은 자신의 코드로 이동할 수 있으며 라이브러리 컨텍스트에서는 도움이되지 않습니다.
이러한 기능 중 하나가 있어야 하는 경우 프로젝트에 필요한 기능으로 포크를 작성하는 것을 고려하십시오. 업스트림 코드와 쉽게 동기화 할 수 있습니다.