Hình ảnh bitmap là một phần cốt lõi của đồ họa hiện đại. Chúng được sử dụng trên các trang web, thiết bị di động và ứng dụng máy tính để bàn. Các định dạng như BMP, GIF, PNG, và JPEG đều dựa trên bitmap. Trong bài viết này, bạn sẽ học cách tạo, tải, điền và vẽ bitmap trong Java.
SDK Vẽ Ảnh Java để Làm Việc với Bitmap
Trong bài viết này, chúng ta sẽ sử dụng Aspose.Drawing for Java để tạo và vẽ trên bitmap trong Java. Đây là một API đồ họa 2D hỗ trợ vẽ hình dạng, văn bản và hình ảnh trên nhiều nền tảng. Bạn có thể dễ dàng tải và lưu các định dạng khác nhau.
Bạn có thể tải thư viện từ releases và thêm JAR vào dự án của bạn hoặc cài đặt qua Maven.
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-drawing</artifactId>
<version>25.6</version> <!-- Replace with latest version -->
</dependency>
1. Tạo một Bitmap Mới trong Java
Để tạo một bitmap từ đầu, hãy làm theo các bước sau:
- Tạo một
bitmap
mới với chiều rộng và chiều cao cụ thể. - Tạo một đối tượng lớp
Graphics
từ bitmap. - Khởi tạo một đối tượng lớp
Pen
với độ dày và màu cụ thể. - Vẽ một elip trên bitmap bằng cách sử dụng bút.
- Lưu bitmap dưới dạng tệp hình ảnh PNG.
Mẫu mã sau đây cho thấy cách tạo một bitmap mới trong Java.
// Tạo một bitmap mới với chiều rộng và chiều cao là 800 pixel.
Bitmap bitmap = new Bitmap(800, 800);
// Tạo một đối tượng đồ họa từ bitmap để kích hoạt việc vẽ
Graphics graphics = Graphics.fromImage(bitmap);
// Khởi tạo một cây bút đỏ với độ dày 5 pixel
Pen pen = new Pen(Color.getRed(), 5);
// Vẽ một elip sử dụng bút bắt đầu từ (0, 0) với chiều rộng và chiều cao là 700 pixel
graphics.drawEllipse(pen, 0, 0, 700, 700);
// Lưu bitmap cuối cùng dưới dạng tệp hình ảnh PNG
bitmap.save("output.png");

Tạo một Bitmap mới trong Java
2. Tạo Bitmap từ Luồng Bộ Nhớ
Để tạo một bitmap từ luồng bộ nhớ, hãy làm theo các bước bên dưới:
- Mở một luồng nhập tệp cho tệp hình ảnh hiện có.
- Tạo một bitmap từ luồng đầu vào.
- Lưu bitmap vào một tệp hình ảnh mới.
Mẫu mã dưới đây cho thấy cách tạo một bitmap sử dụng luồng đầu vào trong Java.
// Mở một dòng nhập tệp để đọc hình ảnh hiện có
InputStream stream = new FileInputStream("input.png");
// Tạo một bitmap từ luồng đầu vào
Bitmap bitmap = new Bitmap(stream);
// Lưu bitmap dưới dạng tệp PNG mới
bitmap.save("output.png", ImageFormat.getPng().d());
3. Lưu Bitmap vào Tập tin
Bạn có thể lưu một hình ảnh bitmap vào một tệp ở nhiều định dạng được hỗ trợ. Chỉ cần chỉ định đường dẫn tệp và định dạng hình ảnh mong muốn khi gọi phương thức save()
. Điều này cho phép bạn xuất hình bitmap dưới dạng PNG, JPEG, BMP, GIF và nhiều định dạng khác.
Bạn có thể lưu bitmaps vào các định dạng khác nhau bằng cách thay đổi định dạng hình ảnh:
- Lưu một Bitmap dưới dạng tệp BMP
bitmap.save("output.bmp", ImageFormat.getBmp().d());
- Lưu một Bitmap dưới dạng tệp PNG
bitmap.save("output.png", ImageFormat.getPng().d());
- Lưu một Bitmap dưới dạng tệp JPG
bitmap.save("output.jpg", ImageFormat.getJpeg().d());
- Lưu một Bitmap dưới dạng tệp GIF
bitmap.save("output.gif", ImageFormat.getGif().d());
4. Vẽ hình dạng trên Bitmap
Bạn có thể vẽ nhiều hình dạng khác nhau trên một bitmap bằng cách sử dụng lớp Graphics
được cung cấp bởi Aspose.Drawing for Java. Nó cho phép bạn tạo đồ họa tùy chỉnh và cho bạn toàn quyền kiểm soát các đường, đường cong, hình chữ nhật, hình elip, và hơn thế nữa.
Mẫu mã dưới đây cho thấy cách vẽ hình trên một bitmap trong Java.
// Tạo một bitmap mới với chiều rộng và chiều cao 500 pixel.
Bitmap bitmap = new Bitmap(500, 500);
// Tạo một đối tượng đồ họa để vẽ trên bitmap
Graphics graphics = Graphics.fromImage(bitmap);
// Khởi tạo một chiếc bút mực xanh với độ dày 2 pixel
Pen pen = new Pen(Color.getBlue(), 2);
// Vẽ một hình chữ nhật bắt đầu từ (10, 10) với chiều rộng 100 và chiều cao 50
graphics.drawRectangle(pen, 10, 10, 100, 50);
// Vẽ một elip bắt đầu từ (10, 130) với chiều rộng 280 và chiều cao 280
graphics.drawEllipse(pen, 10, 130, 280, 280);
// Lưu hình ảnh bitmap cuối cùng dưới dạng tệp PNG
bitmap.save("draw_shapes.png");

Vẽ hình trên Bitmap trong Java
Bạn có thể vẽ nhiều hình dạng khác nhau trên một bitmap bằng cách sử dụng các phương thức vẽ được tích hợp sẵn trong lớp Graphics
của Aspose.Drawing for Java. Dưới đây là các loại hình dạng được hỗ trợ và các phương thức tương ứng:
- Arc: Sử dụng phương thức
drawArc()
để vẽ một cung. - Đường Bezier: Sử dụng phương thức
drawBezier()
để vẽ một đường Bezier đơn. - Nhiều đường Bezier: Sử dụng phương thức
drawBeziers()
để vẽ một chuỗi các splines Bezier. - Đường cong: Sử dụng phương thức
drawCurve()
để tạo ra một hình dạng cong mịn màng. - Đường Cong Đóng: Sử dụng phương thức
drawClosedCurve()
để vẽ một đường spline đóng. - Ellipse: Sử dụng phương thức
drawEllipse()
để vẽ hình bầu dục. - Dòng: Sử dụng phương thức
drawLine()
để vẽ một đường thẳng. - Nhiều dòng: Sử dụng phương thức
drawLines()
để vẽ một loạt các đường thẳng liên kết. - Đường dẫn: Sử dụng phương thức
drawPath()
để vẽ các hình dạng phức tạp bằng cách sử dụngGraphicsPath
. - Bánh: Sử dụng phương thức
drawPie()
để vẽ hình dạng lát bánh. - Polygon: Sử dụng phương thức
drawPolygon()
để tạo ra một đa giác bằng cách kết nối các điểm. - Hình chữ nhật: Sử dụng phương thức
drawRectangle()
để vẽ một hình chữ nhật. - Nhiều hình chữ nhật: Sử dụng phương thức
drawRectangles()
để vẽ nhiều hình chữ nhật cùng lúc.
Ngoài các hình dạng, bạn cũng có thể vẽ hình ảnh trên bitmap:
- Biểu tượng: Sử dụng phương thức
drawIcon()
để vẽ một biểu tượng bên trong một hình chữ nhật cụ thể. - Hình ảnh: Sử dụng phương thức
drawImage()
để vẽ một hình ảnh khác lên bitmap.
Những phương pháp vẽ này giúp dễ dàng tạo ra đồ họa, sơ đồ hoặc hình ảnh chú thích tùy chỉnh một cách lập trình.
5. Vẽ văn bản trên Bitmap
Để vẽ văn bản trên một bitmap bằng cách làm theo các bước dưới đây:
- Tạo một bitmap mới với chiều rộng và chiều cao được xác định.
- Tạo một đối tượng đồ họa từ bitmap.
- Xóa bitmap với màu nền xám sáng.
- Xác định một phông chữ với tên và kích thước mong muốn.
- Tạo một cọ đặc với màu đen.
- Vẽ một chuỗi văn bản trên bitmap bằng phông chữ và bút đã chỉ định.
- Lưu bitmap dưới dạng tệp hình ảnh PNG.
Mẫu mã dưới đây cho thấy cách vẽ văn bản trên một bitmap trong Java.
// Cách vẽ văn bản lên bitmap trong Java bằng cách sử dụng Aspose.Drawing
// Tạo một bitmap mới với kích thước 500x200 pixel.
Bitmap bitmap = new Bitmap(500, 200);
// Tạo một đối tượng đồ họa để vẽ trên bitmap
Graphics graphics = Graphics.fromImage(bitmap);
// Đổ đầy toàn bộ bitmap bằng một nền màu xám nhạt
graphics.clear(Color.getLightGray());
// Định nghĩa một phông chữ có tên \"Arial\" và kích thước 24
Font font = new Font("Arial", 24);
// Tạo một cọ màu đen đặc để vẽ chữ.
Brush brush = new SolidBrush(Color.getBlack());
// Vẽ chuỗi trên bitmap tại vị trí (20, 80)
graphics.drawString("Welcome to Bitmap!", font, brush, 20, 80);
// Lưu hình ảnh cuối cùng với văn bản dưới dạng file PNG
bitmap.save("output.png");

Java Vẽ Văn Bản Trên Bitmap
6. Điền Bitmap với Màu Đặc
Bạn có thể tô một phần của hình ảnh bằng một màu sắc đồng nhất bằng cách làm theo các bước dưới đây:
- Tạo một bitmap mới với chiều rộng và chiều cao mong muốn.
- Tạo một đối tượng đồ họa từ bitmap.
- Tạo một cọ màu xám đặc để tô màu.
- Làm đầy toàn bộ khu vực bitmap bằng màu xám sử dụng một hình chữ nhật được tô.
- Lưu bitmap dưới dạng tệp hình ảnh PNG.
Mẫu mã sau đây cho thấy cách điền một bitmap với màu rắn sử dụng một hình chữ nhật trong Java.
// Tạo một bitmap mới với kích thước 500x500 pixel
Bitmap bitmap = new Bitmap(500, 500);
// Tạo một đối tượng đồ họa để vẽ trên bitmap
Graphics graphics = Graphics.fromImage(bitmap);
// Tạo một bàn chải màu xám đặc để sử dụng cho việc tô màu.
SolidBrush brush = new SolidBrush(Color.getGray());
// Điền toàn bộ khu vực bitmap bằng màu xám
graphics.fillRectangle(brush, 0, 0, bitmap.getWidth(), bitmap.getHeight());
// Lưu bitmap đã điền dưới dạng tệp hình ảnh PNG.
bitmap.save("output.png");

Vẽ Hình Chữ Nhật trên Bitmap và Tô màu bằng Màu sắc trong Java
7. Tải một hình ảnh vào Bitmap
Bạn cũng có thể tải một file hình ảnh vào một đối tượng Bitmap
như sau:
- Tạo một bitmap mới trống với kích thước mong muốn.
- Tải một hình ảnh hiện có vào một đối tượng bitmap.
- Tạo một đối tượng đồ họa từ bitmap trống.
- Vẽ hình ảnh đã tải lên lên bitmap trống ở góc trên bên trái.
- Lưu bitmap cuối cùng dưới dạng tệp hình ảnh PNG.
Mẫu mã sau đây cho thấy cách tải một hình ảnh vào bitmap bằng Java.
// Tạo một bitmap trống mới với kích thước 500x500 pixel
Bitmap bitmap = new Bitmap(500, 500);
// Tải một hình ảnh hiện có từ tệp vào một đối tượng bitmap
Bitmap loaded = new Bitmap("C:\\Files\\Drawings\\sample.jpg");
// Tạo một đối tượng đồ họa để vẽ trên bitmap trống
Graphics graphics = Graphics.fromImage(bitmap);
// Vẽ hình ảnh đã tải lên trên bitmap trắng tại vị trí (0, 0)
graphics.drawImage(loaded, 0, 0);
// Lưu bitmap cuối cùng dưới dạng một tệp PNG mới
bitmap.save("output.png");

Tải một hình ảnh dưới dạng Bitmap bằng Java
8. Thay đổi kích thước một hình ảnh hiện có
Để thay đổi kích thước hình ảnh bitmap:
- Tải hình ảnh gốc vào một đối tượng bitmap.
- Tạo một bitmap mới với chiều rộng và chiều cao bằng một nửa kích thước của hình ảnh gốc.
- Lưu bitmap đã thay đổi kích thước dưới dạng tệp hình ảnh PNG.
Mẫu mã sau đây cho thấy cách thay đổi kích thước của một hình ảnh hiện có và lưu nó dưới dạng bitmap mới trong Java.
// Tải hình ảnh gốc từ tệp vào đối tượng bitmap
Bitmap original = new Bitmap("C:\\Files\\Drawings\\sample.jpg");
// Tạo một bitmap mới được thay đổi kích thước với 50% chiều rộng và chiều cao gốc.
Bitmap resized = new Bitmap(original, new Size((int)(original.getWidth() * 0.5), (int)(original.getHeight() * 0.5)));
// Lưu bitmap đã thay đổi kích thước dưới dạng một tệp hình ảnh PNG mới
resized.save("output.png");

Thay đổi kích thước hình ảnh hiện có bằng Java
Hãy thử Aspose.Drawing miễn phí
Bạn có thể nhận được một giấy phép tạm thời miễn phí để khám phá Aspose.Drawing mà không có giới hạn.
Tạo Bitmap trong Java: Tài nguyên miễn phí
nếu bạn muốn khám phá thêm về việc làm việc với bitmap trong Java thì hãy duyệt qua các tài nguyên miễn phí sau đây để nâng cao hiểu biết và tăng cường năng suất của bạn:
Kết luận
Trong bài hướng dẫn này, bạn đã học cách tạo và làm việc với bitmap sử dụng Aspose.Drawing for Java. Chúng tôi đã đề cập cách tạo một bitmap từ đầu, tải và thay đổi kích thước các hình ảnh hiện có, vẽ hình dạng và văn bản, làm đầy các khu vực bằng màu sắc đồng nhất, và lưu hình ảnh ở nhiều định dạng khác nhau như PNG, JPG, BMP, và GIF. Với những khả năng này, bạn có thể dễ dàng thêm đồ họa tùy chỉnh và xử lý hình ảnh vào các ứng dụng Java của mình.
Aspose.Drawing for Java giúp dễ dàng làm việc với đồ họa 2D theo cách lập trình. Ghé thăm official documentation để khám phá thêm.