---
title: Chunky PNG
category: Ruby libraries
layout: 2017/sheet
---

### Loading

```ruby
image = ChunkyPNG::Image.from_file('file.png')
```

#### Alternate ways

```ruby
image = ChunkyPNG::Image.from_blob(File.read('file.png'))
image = ChunkyPNG::Image.from_io(io) 
```

Loads from `file.png`.

### Saving

```ruby
image.save('filename.png')
```

#### Alternate ways

```ruby
File.open('newfile.png', 'wb') { |io| image.write(io) }
binary_string = image.to_blob
```

Writes an image to `newfile.png`.

### Drawing

```ruby
image[0, 0] = ChunkyPNG::Color.rgba(255, 0,0, 128)
image.line(1, 1, 10, 1, ChunkyPNG::Color.from_hex('#aa007f'))
```

### Canvas

```ruby
crop(x, y, w, h)
```

### Transforms

```ruby
new_image = image.flip_horizontally.rotate_right
```
