# javax.imageio.plugins.bmp

***

**1.** **Reading a BMP image**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class ReadBMP {

    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File("image.bmp"));
        System.out.println("Image width: " + image.getWidth());
        System.out.println("Image height: " + image.getHeight());
    }
}
```

**2.** **Writing a BMP image**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class WriteBMP {

    public static void main(String[] args) throws Exception {
        BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
        ImageIO.write(image, "bmp", new File("image.bmp"));
    }
}
```

**3.** **Converting a BMP image to another format**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class ConvertBMP {

    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File("image.bmp"));
        ImageIO.write(image, "png", new File("image.png"));
    }
}
```

**4.** **Getting the pixel data from a BMP image**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class GetPixelData {

    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File("image.bmp"));
        int[][] pixels = new int[image.getWidth()][image.getHeight()];
        for (int i = 0; i < image.getWidth(); i++) {
            for (int j = 0; j < image.getHeight(); j++) {
                pixels[i][j] = image.getRGB(i, j);
            }
        }
    }
}
```

**5.** **Setting the pixel data of a BMP image**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class SetPixelData {

    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File("image.bmp"));
        for (int i = 0; i < image.getWidth(); i++) {
            for (int j = 0; j < image.getHeight(); j++) {
                image.setRGB(i, j, 0xFF0000);
            }
        }
        ImageIO.write(image, "bmp", new File("image.bmp"));
    }
}
```

**6.** **Flipping a BMP image horizontally**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class FlipHorizontally {

    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File("image.bmp"));
        for (int i = 0; i < image.getWidth() / 2; i++) {
            for (int j = 0; j < image.getHeight(); j++) {
                int temp = image.getRGB(i, j);
                image.setRGB(i, j, image.getRGB(image.getWidth() - i - 1, j));
                image.setRGB(image.getWidth() - i - 1, j, temp);
            }
        }
        ImageIO.write(image, "bmp", new File("image.bmp"));
    }
}
```

**7.** **Flipping a BMP image vertically**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class FlipVertically {

    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File("image.bmp"));
        for (int i = 0; i < image.getWidth(); i++) {
            for (int j = 0; j < image.getHeight() / 2; j++) {
                int temp = image.getRGB(i, j);
                image.setRGB(i, j, image.getRGB(i, image.getHeight() - j - 1));
                image.setRGB(i, image.getHeight() - j - 1, temp);
            }
        }
        ImageIO.write(image, "bmp", new File("image.bmp"));
    }
}
```

**8.** **Rotating a BMP image 90 degrees clockwise**

```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class RotateClockwise {

    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File("image.bmp"));
        BufferedImage rotatedImage = new BufferedImage(image.getHeight

```
