코딩으로 이미지 만들기?
글쓴이: 행복한고니 / 작성시간: 화, 2004/09/21 - 2:25오후
오늘 우연히 재미있는 자바스크립트 소스를 보게 되었습니다.
5K 바이트의 크기로 코딩한 울펜슈타인 3D 라는데요... 익스플로러 전용이긴 하지만 익스플로러가 있는 분들은 한번씩 테스트 해보시구요...
사실 중요한 것은 그게 아니라 여기에 사용된 기술입니다.
이 게임을 위해서 128x64의 이미지를 코딩으로 만들어냅니다!
근데 그 코딩으로 만들어냈다는 코드라는게...
#define t_width 128 #define t_height 72 static char t_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xFE, 0xFF, 0xFF, 0xDF, 0xC4, 0x47, 0x12, 0x02, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xF4, 0xFF, 0xFF, 0x2F, 0xC9, 0x9F, 0xAC, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x13, 0x79, 0xFF, 0xFF, 0x0F, 0x92, 0x25, 0x41, 0x02, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x23, 0xB2, 0xF4, 0xFF, 0x9F, 0xA0, 0x41, 0x12, 0x02, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x69, 0xFF, 0x6F, 0xCD, 0x97, 0x24, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x79, 0xB2, 0xFA, 0x0F, 0xC2, 0x2F, 0xC8, 0x02, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xBF, 0x24, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x22, 0xFE, 0x6D, 0xAA, 0xFB, 0x2B, 0x92, 0x24, 0x03, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x44, 0x4F, 0xFF, 0x5C, 0xFD, 0x47, 0x24, 0x40, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0x96, 0x2C, 0xFF, 0xDB, 0x80, 0x49, 0x9A, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x11, 0x26, 0x49, 0xD4, 0xEF, 0x19, 0x92, 0x25, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x22, 0x4F, 0x9A, 0xAA, 0xFA, 0x23, 0x24, 0x40, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x9F, 0x2C, 0xD5, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x31, 0xC9, 0x93, 0x74, 0x0F, 0x12, 0xA4, 0x5F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x92, 0x25, 0xAB, 0x9A, 0x20, 0xC1, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x24, 0xC9, 0x74, 0x6F, 0x4D, 0x92, 0x26, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xC9, 0x93, 0xFE, 0x0B, 0x82, 0xAC, 0xDF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xD2, 0xFD, 0x57, 0x9D, 0x10, 0xC1, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0xFF, 0x6B, 0xAA, 0xFB, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x4F, 0xB2, 0x54, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x92, 0x24, 0xFF, 0x9F, 0x80, 0x49, 0x9A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x34, 0xE9, 0xFF, 0x2F, 0xD9, 0x97, 0x25, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x49, 0xFE, 0xFF, 0x0F, 0xE2, 0x27, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD2, 0xFF, 0xFF, 0xDF, 0xC4, 0x41, 0x12, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xFC, 0xFF, 0xFF, 0x2F, 0x89, 0x9B, 0xAC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x28, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
※ 원래는 t_bits 의 헥사코드들 사이에 스페이스가 없습니다. 보기 힘들어서 제가 한칸씩 띄워뒀습니다.
어떻게 이런걸로 흑백이미지가 만들어지는 걸까요?
5K 로 3D 화면같은 걸 만들어낸 녀석도 대단하지만(그것도 자바스크립트로!), 저런게 있다는 것도 놀랍습니다.
아... 브라우저에선 BMP로 인식하더군요.
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 4.96 KB |
Forums:
pixmap 아닌가요? :roll:
pixmap 아닌가요? :roll:
---------------------------------------------------
야!...
신기하군요
저같이 공간지각능력이 없는 사람에겐 대단해 보입니다.
어떻게 저런것을 만들어 냈을까...
처음엔 그냥 움직이는 그림이겠군 했는데,
소스보고 onkey가 있어서 눌러보니 동작을 하는 군요..
대단합니다.
어렵지 않습니다.
뽀샵으로 만든 이미지 읽어서 16진 덤프출력하는 프로그램 짜면 됩니다.
jpg같은 경우는 복잡하지만 bmp나 pcx같은 경우는 반나절이면
디코딩프로그램 짭니다.
Written By the Black Knight of Destruction
흔히 쓰는 테크닉이고요. ;;자바스크립트만이 아니라 간단한 C 프
흔히 쓰는 테크닉이고요. ;;
자바스크립트만이 아니라 간단한 C 프로그램같은데도
그림파일 달고다니기 싫을때-_-; 가끔 쓰이는 방법이죠.
XPM입니다.
XPM입니다.
와 대단합니다.
와 대단합니다.
--------------
Burning Blue!
--------------
정말로 키를 치면 화면이 움직이는군요!음...다만 그림 저장은 안
정말로 키를 치면 화면이 움직이는군요!
음...
다만 그림 저장은 안되네요... '잘못된 인수' 라고 하는군요...
----
블로그 / 위키 / 리눅스 스크린샷 갤러리