Tôi có PNG được mã hóa base64. Tôi cần để có được màu sắc của một điểm ảnh bằng cách sử dụng javascript. Tôi cho rằng tôi sẽ phải chuyển nó trở lại PNG bình thường. Có ai có thể chỉ cho tôi đúng hướng không?Nhận màu pixel của Base64 PNG bằng javascript?
Trả lời
Tạo đối tượng Image
với hình ảnh base64 làm nguồn. Sau đó, bạn có thể vẽ hình ảnh vào khung và sử dụng hàm getImageData
để lấy dữ liệu pixel.
Dưới đây là ý tưởng cơ bản (Tôi đã không kiểm tra này):
var image = new Image();
image.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext('2d');
context.drawImage(image, 0, 0);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
// Now you can access pixel data from imageData.data.
// It's a one-dimensional array of RGBA values.
// Here's an example of how to get a pixel's color at (x,y)
var index = (y*imageData.width + x) * 4;
var red = imageData.data[index];
var green = imageData.data[index + 1];
var blue = imageData.data[index + 2];
var alpha = imageData.data[index + 3];
};
image.src = base64EncodedImage;
Cảm ơn bạn rất nhiều! Sau đó tôi lấy nó và chuyển thành mã hex. Có cách nào để kéo dữ liệu hex từ getImageData, hay tôi phải chuyển đổi nó. Dù bằng cách nào, cảm ơn! – switz
@Switz: Không trực tiếp. Bạn chỉ cần chuyển đổi từng kênh riêng lẻ với 'toString (16)' hoặc một cái gì đó tương tự. –
Đó là những gì tôi đã làm. Cảm ơn! – switz
- 1. Nhận màu Pixel nhanh nhất?
- 2. Mã hóa PNG bằng JavaScript
- 3. base64 png trong python trên Windows
- 4. Giá trị màu của pixel rmagick
- 5. Cách lấy màu của pixel trong UIView?
- 6. Đảo ngược màu của hình ảnh bằng CSS hoặc JavaScript
- 7. Đọc các màu pixel của hình ảnh
- 8. Tạo hình ảnh của một DIV bằng JavaScript (GIF/PNG)
- 9. Cách đơn giản để đọc các giá trị màu pixel từ hình ảnh PNG trên iPhone?
- 10. Hình ảnh WPF, thay đổi màu của pixel
- 11. Chuyển đổi dữ liệu base64 png để tập tin javascript đối tượng
- 12. Chuyển đổi dữ liệu nhị phân thành base64 bằng javascript
- 13. Lấy màu pixel từ một hình ảnh
- 14. Làm cách nào để đặt màu của pixel trên canvas bằng WebGL?
- 15. Lấy RGB của pixel bằng PIL
- 16. chuyển chuỗi base64 thành hình ảnh bằng javascript
- 17. Metro nhận chuỗi base64 của một StorageFile
- 18. Thay đổi màu pixel Python
- 19. LibGDX tạo kết cấu từ base64 PNG ByteArrayInputStream
- 20. canvas ImageData xóa các pixel màu trắng
- 21. Làm cách nào để nhận được màu của pixel tại X, Y khi sử dụng C#?
- 22. Nhận biết vị trí của quả bóng màu đỏ trong hình ảnh có JavaScript?
- 23. Cách lấy màu nền của phần tử bằng javascript?
- 24. Bitmap của Android: Chuyển đổi pixel trong suốt thành màu
- 25. Có thể thay đổi màu của một pixel riêng lẻ bằng Python không?
- 26. PNG - Có thể giảm bảng màu bằng cách sử dụng Java 2D không?
- 27. Cách mã hóa base64 hình ảnh trong javascript
- 28. Thay đổi màu của các phần không trong suốt của png trong Java
- 29. Cách lấy màu từ pixel? OpenGL
- 30. Nhận xét bằng JavaScript
Vâng, bạn sẽ có cho cả hai base64-decode, và sau đó giải mã các dòng PNG trong Javascript. Đây là một vấn đề khó (mặc dù không thể). Bạn có thể thực sự bị ràng buộc với yêu cầu này, nhưng nếu bạn cung cấp thêm một chút ngữ cảnh, bạn có thể nhận được một số câu trả lời rộng hơn phạm vi cung cấp cách giải quyết khác trong tình huống. Ví dụ. dữ liệu PNG đến từ đâu? Nó sẽ đi đâu? Bạn có cần một pixel cố định từ mỗi hình ảnh không? Bạn có hỗ trợ máy chủ nào không? Vv số –
Để làm cho nó chi tiết hơn một chút: Tôi đang cố gắng viết một Tiện ích mở rộng Safari. Nó sẽ bắt chước các khả năng của Colorzilla cho Firefox. Cách duy nhất tôi đã thấy rằng điều này là có thể, là nếu bạn có một "ảnh chụp màn hình". Đầu ra nằm trong Base64 PNG. Cuối cùng tôi sẽ cần phải theo dõi con chuột, sau đó đồng bộ hóa với hình ảnh để kéo dữ liệu của pixel được nhấp ra khỏi hình ảnh. – switz
@BenZotto Tại sao nó khó? – Melab