> For the complete documentation index, see [llms.txt](https://docs.overdare.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overdare.com/korean/development/api-reference/classes/imagebutton.md).

# ImageButton

ImageButton : `GuiButton`

## Overview

ImageButton은 이미지 표시 방식은 ImageLabel과 같지만, 버튼으로서의 상호작용 기능이 더해진 형태입니다. 즉, 이미지를 표시하면서도 클릭·터치 같은 GuiButton의 이벤트를 사용할 수 있는 UI 요소입니다.

ImageButton은 **클라이언트 환경**에서만 제어할 수 있습니다.

## Properties

### ContentImageSize

`Vector2`

Image에 지정한 원본 이미지의 크기를 픽셀 단위로 나타내는 읽기 전용 속성입니다.

이미지가 아직 로드되지 않았으면 (0, 0)입니다. Image를 바꾸면 새 이미지가 로드될 때까지 (0, 0)으로 돌아갑니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

print("ContentImageSize : ", ImageButton.ContentImageSize)
```

### HoverImage

`string`

ImageButton에 마우스 커서가 올라갔을 때(호버 상태) 표시할 이미지 에셋을 지정합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.HoverImage = "ovdrassetid://1234"
```

### Image

`string`

ImageButton에 표시할 이미지 에셋을 지정합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.Image = "ovdrassetid://1234"
```

### ImageColor3

`Color3`

이미지에 적용되는 색상을 지정합니다.

색을 흰색으로 두면 원본 이미지가 그대로 표시되며, 다른 색을 지정하면 이미지 전체에 그 색조가 입혀집니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ImageColor3 = Color3.fromRGB(255, 0, 0)
```

### ImageRectOffset

`Vector2`

원본 이미지에서 표시할 영역의 왼쪽 위 시작 위치를 픽셀 단위로 지정합니다.

ImageRectSize와 함께 사용하면 여러 아이콘을 모아 둔 하나의 이미지(스프라이트 시트)에서 원하는 부분만 표시할 수 있습니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ImageRectOffset = Vector2.new(64, 0)
ImageButton.ImageRectSize = Vector2.new(64, 64)
```

### ImageRectSize

`Vector2`

원본 이미지에서 표시할 영역의 크기를 픽셀 단위로 지정합니다.

표시할 영역의 시작 위치는 ImageRectOffset으로 지정합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ImageRectOffset = Vector2.new(0, 0)
ImageButton.ImageRectSize = Vector2.new(128, 128)
```

### ImageTransparency

`number`

이미지의 투명도를 지정합니다.

0은 완전한 불투명 상태를 의미하고, 1은 전혀 보이지 않는 상태를 의미합니다.

배경을 숨기고 이미지만 표시하고 싶다면 BackgroundTransparency를 1로 설정하면 됩니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ImageTransparency = 0.5
```

### IsLoaded

`boolean`

Image에 지정한 이미지가 로드되어 표시할 수 있는 상태인지를 나타내는 읽기 전용 속성입니다.

Image를 바꾸면 새 이미지가 로드될 때까지 false가 됩니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

print("IsLoaded : ", ImageButton.IsLoaded)
```

### PressedImage

`string`

버튼을 누르고 있는 동안 표시할 이미지의 AssetId를 지정합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.PressedImage = "ovdrassetid://1234"
```

### ResampleMode

`Enum.ResamplerMode`

이미지를 확대하거나 축소해 표시할 때 사용할 리샘플링 방식을 지정하는 속성입니다.

기본값은 Default이며, 픽셀 아트처럼 경계가 뚜렷한 이미지를 흐려지지 않게 표시하려면 Pixelated로 설정합니다.

#### Code Samples

### ScaleType

`Enum.ScaleType`

UI 요소의 크기가 원본 이미지와 다를 때 이미지를 어떻게 조정할지 지정합니다.

* `Stretch`: 이미지를 요소의 크기에 맞게 늘립니다. 기본값입니다.
* `Slice`: 이미지를 아홉 개의 영역으로 나누고 각 영역에 서로 다른 조정 규칙을 적용합니다. 슬라이스 경계는 SliceCenter로 결정됩니다. Slice로 설정하면 SliceCenter와 SliceScale 속성이 함께 표시됩니다.
* `Tile`: TileSize 크기의 타일로 이미지를 반복해 표시합니다.
* `Fit`: 원본 비율을 유지한 채 이미지 전체가 요소 안에 들어가도록 크기를 맞춥니다.
* `Crop`: 원본 비율을 유지한 채 요소를 가득 채우도록 크기를 맞추고, 요소를 벗어나는 부분은 잘라냅니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ScaleType = Enum.ScaleType.Slice
```

### SliceCenter

`Rect`

ScaleType이 Slice일 때 아홉 개 영역의 슬라이스 경계를 지정합니다.

값은 이미지 좌상단(0, 0)을 기준으로 한 절대 픽셀 좌표이며, 좌상단 지점 Min과 우하단 지점 Max로 구성됩니다. Properties 창에는 X0, Y0, X1, Y1 네 개의 필드로 표시되며 각각 Min.X, Min.Y, Max.X, Max.Y에 대응합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ScaleType = Enum.ScaleType.Slice
ImageButton.SliceCenter = Rect.new(10, 10, 118, 118)
```

### SliceScale

`number`

ScaleType이 Slice일 때 슬라이스 테두리를 지정한 비율로 확대합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ScaleType = Enum.ScaleType.Slice
ImageButton.SliceScale = 2
```

### TileSize

`UDim2`

ScaleType이 Tile일 때 반복해서 표시할 타일 하나의 크기를 지정합니다.

Scale은 UI 요소 크기에 대한 비율이고 Offset은 픽셀 단위입니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui:WaitForChild("ImageButton")

ImageButton.ScaleType = Enum.ScaleType.Tile
ImageButton.TileSize = UDim2.new(0, 32, 0, 32)
```

## Methods

## Events

## See also

{% content-ref url="/pages/K1g0tEWDJhh6a6E4UURk" %}
[GUI](/korean/manual/studio-manual/gui.md)
{% endcontent-ref %}
