Làm cách nào để lấy tệp hình ảnh và chuyển đổi nó thành raster và sau đó truy cập dữ liệu của nó (giá trị RBG) pixel theo pixel?Làm cách nào để lấy một tệp hình ảnh và chuyển đổi nó thành một raster và sau đó truy cập dữ liệu của nó?
Trả lời
BufferedImage img = ImageIO.read(new File("lol"));
int rgb = img.getRGB(x, y);
Color c = new Color(rgb);
Bây giờ bạn có thể sử dụng Color.getRed(), getGreen(), getBlue() và getAlpha() để có được những giá trị khác nhau
Sử dụng ImageIO.read
để đọc các tập tin hình ảnh trong như một BufferedImage
, và sau đó sử dụng một trong các phương pháp getData
để có được hình ảnh Raster
của hình ảnh. Và trong đó, bạn sẽ tìm thấy các phương thức để lấy dữ liệu pixel.
BufferedImage image = ImageIO.read(new File(myFilename));
int pixel = image.getRGB(0, 0); // Top left pixel.
// Access the color components, valued 0-255.
int alpha = (pixel >>> 24) & 0xff; // If applicable to image format.
int r = (pixel >>> 16) & 0xff;
int g = (pixel >>> 8) & 0xff;
int b = pixel & 0xff;
[Chỉnh sửa] Lưu ý rằng @ câu trả lời Sibbo là đúng và thuận tiện sử dụng Color
class color accessor methods; tuy nhiên, việc trích xuất các màu trực tiếp thông qua thao tác bit như tôi đã chứng minh có thể sẽ nhanh hơn đáng kể vì nó tránh được sự phí tổn của các cuộc gọi hàm dựng lặp lại.
Không sử dụng các giá trị rgb sau khi bạn hoàn thành chuyển hình ảnh vào một raster sử dụng rasters .getData
phương pháp
Sử dụng này:
Image img.getRGB(x, y);
Color c = new Color(rgb);
- 1. Tìm vị trí của một chuỗi trong một tệp PDF và sau đó điều chỉnh nó
- 2. XSLT: Chuyển đổi dữ liệu base64 thành tệp hình ảnh
- 3. Làm cách nào để lấy một trình xây dựng chuỗi và chuyển đổi nó thành trình quản lý luồng?
- 4. Nhận hình ảnh Blob và chuyển đổi hình ảnh đó thành hình ảnh Bitmap
- 5. Làm cách nào để tạo một thực thể mô hình mới, sau đó đọc nó ngay sau đó?
- 6. Làm cách nào để chuyển đổi toàn bộ dữ liệu div của tôi thành hình ảnh và lưu nó vào thư mục mà không cần sử dụng canvas?
- 7. Làm thế nào để lưu hình ảnh được tải lên một bộ sưu tập MongoDB, và lấy nó
- 8. CodeIgniter Tải lên hình ảnh và sau đó thay đổi kích thước nó
- 9. Làm cách nào để chuyển một tên biến như một phần của tham số vào một tệp lô và sau đó sử dụng nó?
- 10. Android - Làm thế nào để có một EditText (số) sau đó chuyển đổi nó thành một số nguyên để sử dụng nó cho toán học?
- 11. Làm thế nào để làm mới một ListView để requery con trỏ của nó để repopulate dữ liệu của nó và quan điểm của nó
- 12. Cách lấy từ đầu tiên của chuỗi và chuyển đổi nó thành int? jQuery
- 13. Làm thế nào để tải lên một tệp PDF nhiều trang và chuyển đổi nó thành JPEG với Paperclip?
- 14. Tạo một hình thu nhỏ và sau đó chuyển đổi thành mảng byte
- 15. backbone.js thay đổi tham số url của một mô hình và lấy không cập nhật dữ liệu lấy
- 16. Cách tính trung bình của một cột và sau đó bao gồm nó trong một truy vấn chọn trong oracle?
- 17. Lấy một hình ảnh và vị trí của nó từ tệp excel bằng cách sử dụng Apache POI
- 18. Tải về một tập tin pdf và lưu nó vào sdcard và sau đó đọc nó từ đó
- 19. Chuyển đổi phần tử Canvas thành Hình ảnh và lưu trữ trong cơ sở dữ liệu
- 20. Làm cách nào để chuyển một tệp dữ liệu phẳng thành nguồn dữ liệu có thể truy vấn
- 21. Làm thế nào để chuyển đổi hình ảnh (.png) thành chuỗi base64, ngược lại và xâu chuỗi nó đến một vị trí cụ thể
- 22. Có cách nào để chụp ảnh màn hình bằng Java và lưu nó vào một số loại hình ảnh không?
- 23. Extract hộp bounding và lưu nó như một hình ảnh
- 24. Sao chép hình ảnh và lưu giữ dữ liệu EXIF / IPTC của nó bằng PHP imageCreateFromJpeg?
- 25. Làm cách nào để chuyển đổi một DataTable thành IDatareader?
- 26. Làm thế nào để chuyển đổi băm MD5 thành chuỗi và sử dụng nó làm tên tệp
- 27. Lưu bất kỳ tệp nào vào cơ sở dữ liệu, chỉ cần chuyển đổi nó thành một mảng byte?
- 28. Làm thế nào để chuyển đổi một tiêu đề cột và giá trị của nó thành hàng trong sql?
- 29. Lưu tệp hình ảnh vào sql Máy chủ và chuyển đổi mảng byte thành hình ảnh
- 30. Cơ sở dữ liệu không thể truy cập sau khi quá trình 'đưa nó ngoại tuyến' không thành công
int r = (pixel >>> 16) & 0xff; int g = (pixel >>> 8) & 0xff; int b = pixel & 0xff; các dòng mã này làm gì? và toán tử & toán tử hoặc 0xff có nghĩa là gì – lancegerday
@lancegerday: các dòng đó trích xuất các giá trị màu riêng lẻ (r, g, b, a) từ giá trị [pixel RGBA tổng hợp "] (http://en.wikipedia.org/wiki/RGBA_color_space) để bạn có thể dễ dàng kiểm tra từng cá nhân dưới dạng giá trị từ 0 đến 255. – maerics