일본의 모바일 게임 개발업체인 알티에서 자사의 첫 안드로이드 앱인 '전자계산기 소녀(電卓少女)'를 공개했습니다.
간단히 말해서 숫자를 직접 읽어주는 전자계산기 정도로 생각하시면 되는데요,
지금까지 스마트폰 부문에선 iOS만 지원해오던 알티가 안드로이드 오리지널 앱을 내 놓은 걸 봤을 때
이런 식으로 몸풀기 & 간보기가 끝나고 나면 안드로이드 플랫폼으로도 본격적인 개발이 시작되지 않을까 싶습니다.



이 앱에 등장하는 소녀의 이름은 '아소기 나유타(阿僧祇なゆた)'.
성인 '아소기'는 화엄경에 나오는 '아승기'에서 따온 것으로, 수리적으로는 10의 56승을 뜻한다고 합니다.
왠지 계산기다운 이름이네요.



룸에 있는 코스튬 기능은 아쉽게도 아직 탑재되지 않았습니다.
추후 버전업을 통해 지원하겠죠?



긴급 상황(?)에는 우측 상단에 있는 패닉 모드 버튼을 누르면 이렇게 건전한 레이아웃의 계산기로 바뀌게 됩니다.
평소에 일코하시는 분들께는 상당히 유용한 기능이 아닐까 싶습니다.^^;


*   *   *   *   *

마켓 링크 : market://search?q=pname:althi.hrkw.CalcGirl
가격 : 무료
지원 버전 : 1.6 이상

참고로 이 앱은 복사 방지가 걸려있어서 그런지 옵큐를 비롯한 몇몇 단말기에서는 마켓에서 검색이 되지 않는데요,
저는 정상적으로 검색이 가능한 다른 단말기의 fingerprint를 이식해서 일단 설치를 마친 후 apk를 추출하고
fingerprint를 원래대로 돌려놓은 후 추출한 apk로 다시 설치하는 좀 번거로운 방법을 택했습니다.
이 경우 루팅이 필요하니 설치 시에는 충분히 주의해 주시기 바랍니다.


들어가기 전에
먼저 지난번에 올렸던 '엑셀로 카가미를 그려봅시다'가 네이버 메인에 올라갔더군요 'ㅁ'
부족한 부분이 많은데도 관심을 가지고 봐 주셔서 정말 감사합니다.
그래서 이번에는 워드로 코나타를 한번 그려보도록 하겠습니다.
일단 기본적인 아이디어는 니코니코 동화에 업로드되었던 'Word로 토모에 유키나'를 참고했습니다.
이걸 처음 만드신 분은 BMP2CSV를 사용해서 RGB값을 추출한 후 그걸 배열에 집어넣는 방법을 사용하셨지만
저는 엑셀로 카가미를 그리면서 만들어 둔 코드가 있기에 그걸 재활용해서 다른 방법으로 접근해 보았습니다.


준비물
* 포토샵
* 워드 2007 (워드도 2003 이하 버전은 사용할 수 있는 색상 수에 제한이 있기 때문에 2007을 사용했습니다.)
* C 컴파일러 (지난번과 마찬가지로 Visual Studio 6.0을 사용했습니다.)


제작과정

1. 이미지 준비
이미지 준비 과정은 엑셀과 동일합니다.
이미지를 적당한 크기로 잘라낸 후 RGB에 채널당 8비트로 설정해 주시구요, (기본으로 설정되어 있을 겁니다.)
워드에서 그림을 출력하는데 사용할 표의 셀 개수에 맞춰 리사이즈합니다.
이때 주의하셔야 할 점이 있는데요, 워드에서는 표의 행과 열의 개수를 각각 최대 63개까지밖에 설정할 수 없습니다.
따라서 이미지의 가로와 세로가 63픽셀 이하가 되도록 설정해 주셔야 합니다.
마지막으로 리사이즈된 이미지를 'File'의 'Save as...'에서
'Photoshop Raw' 포맷을 선택해서 저장해주시면 이미지 준비는 모두 끝납니다.
(저장하실 때 옵션에서 꼭 헤더 사이즈는 0으로, 채널은 'Interleaved Order'로 설정해주셔야 합니다.)

2. Raw 파일 변환
1번 과정을 무사히 마치셨다면 한 픽셀당 RGB값이 각각 1바이트씩 할당되어서
'전체 픽셀 수 * 3바이트'만큼의 용량을 가지는 Raw 파일이 생성되었을 겁니다.
그럼 이제 아래 C 소스를 이용해서 생성된 Raw 파일에서 RGB값을 뽑아내도록 하겠습니다.

#include <stdio.h>
#include <stdlib.h>

#define WIDTH 63
#define HEIGHT 63

void main()
{
   unsigned char red;
   unsigned char green;
   unsigned char blue;

   int colorVal;
   int i, j;

   FILE* source = fopen("image.raw", "rb");
   FILE* target = fopen("image.txt", "w");

   for(i=0 ; i<HEIGHT ; i++)
   {
      for(j=0 ; j<WIDTH ; j++)
      {
         red = fgetc(source);
         green = fgetc(source);
         blue = fgetc(source);

         colorVal = red + green*256 + blue*65536;

         fprintf(target, "%d", colorVal);
         fprintf(target, "\n");
      }
   }
   fclose(source);
   fclose(target);
}

코드가 엑셀 때와 거의 비슷하죠?
텍스트 파일로 출력될 때 한 라인에 RGB값을 하나씩만 찍어준다는 점을 제외하고는 완전히 같습니다.
WIDTH와 HEIGHT에 정의된 값은 원하시는 이미지 사이즈에 맞춰 변경해주시면 되구요.

3. 매크로 작성 및 완성
2번 과정까지 끝내셨다면 워드를 실행시키신 후 아래 매크로를 작성하세요.

Sub Color()
Dim fileName As String
Dim fileNum As Integer
Dim buffer As Variant

fileName = "c:\image.txt"
fileNum = FreeFile
Open fileName For Input As fileNum

For i = 1 To 63
   For j = 1 To 62
   Line Input #fileNum, buffer
   Selection.SelectCell
   Selection.Shading.BackgroundPatternColor = buffer
   Selection.MoveRight Unit:=wdCharacter, Count:=1
   Next j

   Line Input #fileNum, buffer
   Selection.SelectCell
   Selection.Shading.BackgroundPatternColor = buffer
   Selection.MoveDown Unit:=wdLine, Count:=1
   Selection.MoveLeft Unit:=wdCharacter, Count:=62
Next i

Close fileNum
End Sub

'fileName = "c:\image.txt"' 부분에는 2번 과정에서 생성된 텍스트 파일의 경로를 적어주시면 되구요,
For 구문의 루프 횟수와 'Selection.MoveLeft Unit:=wdCharacter, Count:=62'에서
Count에 들어가는파라미터 값은 이미지 사이즈에 맞게 조절해주시면 됩니다.
(바깥쪽 For 구문 : 이미지의 세로 사이즈, 안쪽 For 구문과 Count의 파라미터 값 : 이미지의 가로 사이즈 - 1)

사용자 삽입
이미지

매크로까지 준비가 다 되셨다면 표를 만드시고 표의 1행 1열에 커서를 두신 후 매크로를 실행해보세요.
귀여운 코나타의 모습이 표를 한 칸씩 채워나가는 걸 보실 수 있을 거예요^^


들어가기 전에
이 글은 예전에 니코니코 동화에 업로드되었던 'Excel로 나가토 유키'를 기반으로 하고 있습니다.
이미 많은 분들이 보셨고 수많은 파생작들이 쏟아져 나왔죠. (워드라던가 마리오페인터라던가 -_-;;)
그런데 지금 와서 갑자기 이걸 잡게 된 이유는... 그냥 심심해서랄까요 -ㅅ-
전반적인 기법은 니코니코를 많이 참고했지만 제가 Perl을 써 본 경험이 없는 관계로
이미지에서 RGB값을 뽑아내는 부분은 부득이하게 C로 다시 짜게 되었습니다.
정말 간단하긴 하지만 혹시 개선해야 할 부분이나 지적하실 부분이 있으시다면 언제든 덧글 남겨주세요^^


준비물
* 포토샵
* 엑셀 2007 (2003 이하 버전은 동시에 최대 56색까지밖에 쓸 수 없기 때문에 2007을 쓰시는 쪽이 좋습니다.)
* C 컴파일러 (저는 Visual Studio 6.0을 사용했습니다.)


제작과정
1. 이미지 준비
먼저 엑셀로 그리기 위한 이미지를 찾아 포토샵으로 편집합니다.
이미지를 적당한 크기로 잘라낸 후 RGB에 채널당 8비트로 설정해 주시구요, (기본으로 설정되어 있을 겁니다.)
이미지를 엑셀에서 사용할 셀 개수에 맞춰 리사이즈합니다. (저는 가로와 세로를 각각 130픽셀로 잡았습니다.)
마지막으로 리사이즈된 이미지를 'Save as...'에서 'Photoshop Raw' 포맷을 선택해서 저장해주시면
이미지 준비는 모두 끝납니다.
(저장하실 때 옵션에서 꼭 헤더 사이즈는 0으로, 채널은 'Interleaved Order'로 설정해주셔야 합니다.)

2. Raw 파일 변환
1번 과정을 무사히 마치셨다면 한 픽셀당 RGB값이 각각 1바이트씩 할당되어서
'전체 픽셀 수 * 3바이트'만큼의 용량을 가지는 Raw 파일이 생성되었을 겁니다.
그럼 이제 아래 C 소스를 이용해서 생성된 Raw 파일에서 RGB값을 뽑아내도록 하겠습니다.
 
#include <stdio.h>
#include <stdlib.h>

#define WIDTH 130
#define HEIGHT 130

void main()
{
   unsigned char red;
   unsigned char green;
   unsigned char blue;
 
   int colorVal;
   int i, j;
 
   FILE* source = fopen("image.raw", "rb");
   FILE* target = fopen("image.txt", "w");

   for(i=0 ; i<HEIGHT ; i++)
   {
      for(j=0 ; j<WIDTH ; j++)
      {
         red = fgetc(source);
         green = fgetc(source);
         blue = fgetc(source);

         colorVal = red + green*256 + blue*65536;

         fprintf(target, "%d", colorVal);

         if(j != WIDTH-1)
         {
            fprintf(target, ",");
         }
      }
      fprintf(target, "\n");
   }
   fclose(source);
   fclose(target);
}

이 코드를 컴파일해서 실행하면 Raw 파일의 RGB값이 10진수로 변환되어 텍스트 파일에 저장되며
나중에 엑셀에서 이 파일을 불러왔을때 각 픽셀의 색상값이 각각의 셀에 대응됩니다.
WIDTH와 HEIGHT에 정의된 값은 원하시는 이미지 사이즈에 맞춰 변경해주시면 되구요.
사실 BMP2CSV 같은 프로그램을 사용하면 이 과정을 생략할 수도 있지만 그럼 너무 시시하잖아요^^;

3. 매크로 작성 및 완성
이제 엑셀에서 아까 생성된 텍스트 파일을 불러오신 후 (이때 구분 기호에 쉼표도 꼭 체크를 하셔야 합니다.)
아래 매크로를 작성하시고 실행시키시면 새침데기 카가미가 워크시트 위에 서서히 모습을 드러냅니다.
 
Sub Color()
For i = 1 To 130
   For j = 1 To 130
   Cells(i, j).Interior.Color = Cells(i, j).Value
   Next
   
   currentHour = Hour(Now())
   currentMinute = Minute(Now())
   currentSecond = Second(Now()) + 1
   waitTime = TimeSerial(currentHour, currentMinute, currentSecond)
   Application.Wait waitTime
Next
End Sub

매크로 부분은 니코니코에 올라와 있는 것을 그대로 가져다 썼습니다.
For 구문의 루프 횟수는 이미지 사이즈에 맞게 적절히 조절해주시면 되구요,
'currentHour = Hour(Now())'부터 'Application.Wait waitTime'까지는
동영상을 찍기 위해 한 라인당 1초씩 딜레이를 준 부분이니
한시라도 빨리 카가미의 모습을 감상하고자 하시는 분은 저 다섯 줄을 지워버리셔도 상관없습니다^^
 
사용자
삽입 이미지

자, 이렇게 해서 귀여운 카가미가 완성되었습니다~>.<
이건 해상도를 조금 높여서 200*200 사이즈로 한번 만들어 봤어요.
그런데 제 컴퓨터가 많이 힘겨워하더군요 =ㅅ=

지금까지 이런 선사시대 자료를 읽어주셔서 감사합니다(__)
언젠가 시간이 나면 워드로 카가미에 한번 도전해보도록 하겠습니다~'ㅂ'

+ Recent posts