메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Autoit 부팅 로고 만들기

데브카페
Devcafe (토론 | 기여)님의 2025년 7월 30일 (수) 01:03 판 (새 문서: 아래는 **AutoIt** + **GDIPlus**를 사용해 **"SQL*KEY"** 텍스트에서 `*`가 `+`, `-`, `*`로 계속 반복되면서 동시에 글자 색상이 바뀌는 애니메이션을 구현한 코드입니다. ### 최종 코드 (`SQLKeyAnimation_Advanced.au3`) ```autoit #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) ; 이벤트 모드 활성화 ; 설정 Local $text = "SQL*KEY" Local $fontSize = 36 Local $width = 400...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

아래는 **AutoIt** + **GDIPlus**를 사용해 **"SQL*KEY"** 텍스트에서 `*`가 `+`, `-`, `*`로 계속 반복되면서 동시에 글자 색상이 바뀌는 애니메이션을 구현한 코드입니다.

      1. 최종 코드 (`SQLKeyAnimation_Advanced.au3`)

```autoit

  1. include <GDIPlus.au3>
  2. include <GUIConstantsEx.au3>
  3. include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1) ; 이벤트 모드 활성화

설정

Local $text = "SQL*KEY" Local $fontSize = 36 Local $width = 400, $height = 100 Local $colors[7] = [0xFFFF0000, 0xFFFFA500, 0xFFFFFF00, 0xFF00FF00, 0xFF0000FF, 0xFF4B0082, 0xFF9400D3] ; ARGB 색상 Local $delay = 300 ; ms Local $font = "Arial"

GDI+ 초기화

_GDIPlus_Startup() Local $hGUI = GUICreate("SQL*KEY Advanced Animation", $width, $height) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

GDI+ 그래픽스 객체 생성

Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphics) Local $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)

폰트 및 브러시 설정

Local $hFont = _GDIPlus_FontCreate($font, $fontSize) Local $hFormat = _GDIPlus_StringFormatCreate() Local $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000)

심볼 변경을 위한 변수

Local $symbolIndex = 0 Local $symbols[3] = ["*", "+", "-"] ; 반복할 심볼 순서

애니메이션 루프

GUISetState(@SW_SHOW)

Local $i = 0 While 1

   ; 배경 지우기 (흰색)
   _GDIPlus_GraphicsClear($hBackbuffer, 0xFFFFFFFF)
   ; 현재 심볼 결정 (0.5초마다 변경)
   If Mod($i, 5) = 0 Then ; $delay=300ms 기준 1.5초마다 변경
       $symbolIndex = Mod($symbolIndex + 1, 3)
   EndIf
   ; 텍스트 생성 (SQL[현재 심볼]KEY)
   Local $animatedText = StringReplace($text, "*", $symbols[$symbolIndex])
   ; 텍스트 그리기
   Local $xPos = 20
   For $j = 1 To StringLen($animatedText)
       Local $char = StringMid($animatedText, $j, 1)
       
       ; 현재 인덱스 글자만 색상 변경
       If $j - 1 = Mod($i, StringLen($animatedText)) Then
           _GDIPlus_BrushSetSolidColor($hBrush, $colors[$j - 1 Mod 7])
       Else
           _GDIPlus_BrushSetSolidColor($hBrush, 0xFF000000) ; 나머지 글자는 검정
       EndIf
       
       ; 글자 그리기
       _GDIPlus_GraphicsDrawStringEx($hBackbuffer, $char, $hFont, _GDIPlus_RectFCreate($xPos, 20, 30, 50), $hFormat, $hBrush)
       $xPos += 30
   Next
   ; 화면에 출력
   _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0)
   Sleep($delay)
   $i += 1

WEnd

Func _Exit()

   ; GDI+ 리소스 해제
   _GDIPlus_FontDispose($hFont)
   _GDIPlus_StringFormatDispose($hFormat)
   _GDIPlus_BrushDispose($hBrush)
   _GDIPlus_GraphicsDispose($hBackbuffer)
   _GDIPlus_GraphicsDispose($hGraphics)
   _GDIPlus_BitmapDispose($hBitmap)
   _GDIPlus_Shutdown()
   Exit

EndFunc ```

      1. 주요 기능 설명

1. **심볼 애니메이션** (`*` → `+` → `-` 반복)

  - 1.5초마다 심볼이 변경됩니다 (`$delay=300ms` × 5회).
  - `$symbols` 배열에서 순서를 변경할 수 있습니다.

2. **글자 색상 애니메이션**

  - 각 글자가 순차적으로 무지개 색상으로 변경됩니다.
  - `$colors` 배열로 색상을 커스터마이징할 수 있습니다.

3. **고성능 렌더링**

  - GDI+를 사용해 부드러운 텍스트 출력이 가능합니다.
      1. 실행 방법

1. AutoIt SciTE 편집기에 코드 복사 2. `F5` 키로 실행 3. 창이 나타나면 애니메이션 확인

      1. 추가 커스터마이징

- **변경 속도 조정**: `$delay` 값 수정 (작을수록 빠름) - **새로운 심볼 추가**: `$symbols` 배열에 문자 추가 예: `["*","+","-","="]` - **색상 변경**: `$colors` 배열의 ARGB 값 수정

이 코드는 **실시간 애니메이션**으로 동작하며, `.gif`로 저장하려면 외부 캡처 도구가 필요합니다.

Comments