Làm cách nào để chuyển đổi màu hex thành mã RGB trong Java? Chủ yếu là trong Google, các mẫu là làm thế nào để chuyển đổi từ RGB sang hex.Làm thế nào để chuyển đổi hex sang rgb bằng cách sử dụng Java?
Trả lời
Tôi đoán đây nên làm điều đó:
/**
*
* @param colorStr e.g. "#FFFFFF"
* @return
*/
public static Color hex2Rgb(String colorStr) {
return new Color(
Integer.valueOf(colorStr.substring(1, 3), 16),
Integer.valueOf(colorStr.substring(3, 5), 16),
Integer.valueOf(colorStr.substring(5, 7), 16));
}
Đối với những người muốn có phiên bản 3 ký tự, lưu ý rằng trong trường hợp 3 ký tự, mỗi giá trị phải là * 255/16. Tôi đã thử nghiệm điều này bằng "000", "aaa" và "fff" và tất cả đều hoạt động bình thường hiện nay. – Andrew
Chuyển đổi thành số nguyên, sau đó chia nó hai lần 16, 256, 4096 hoặc 65536 tùy thuộc vào độ dài của chuỗi hex gốc (3, 6, 9 hoặc 12 tương ứng).
Mã màu hexidecimal đã được rgb. Định dạng là #RRGGBB
Trừ khi nó là #RGB, #RRRGGGBBB hoặC#RRRRGGGGBBBB. –
public static void main(String[] args) {
int hex = 0x123456;
int r = (hex & 0xFF0000) >> 16;
int g = (hex & 0xFF00) >> 8;
int b = (hex & 0xFF);
}
Một hex mã màu là #RRGGBB
RR, GG, BB là những giá trị hex dao động 0-255
Hãy XY gọi RR trong đó X và Y là hex nhân vật 0-9A-F, A = 10, F = 15
giá trị thập phân là X * 1 6 + Y
Nếu RR = B7, các số thập phân cho B là 11, vì vậy giá trị là 11 * 16 + 7 = 183
public int[] getRGB(String rgb){
int[] ret = new int[3];
for(int i=0; i<3; i++){
ret[i] = hexToInt(rgb.charAt(i*2), rgb.charAt(i*2+1));
}
return ret;
}
public int hexToInt(char a, char b){
int x = a < 65 ? a-48 : a-55;
int y = b < 65 ? b-48 : b-55;
return x*16+y;
}
Đối phát triển Android, tôi sử dụng:
int color = Color.parseColor("#123456");
Chỉ cần thay thế '#' bằng '0x' –
Để xây dựng vào ngày e trả lời @ xhh được cung cấp, bạn có thể nối màu đỏ, xanh lục và xanh dương để định dạng chuỗi của bạn là "rgb (0,0,0)" trước khi trả lại.
/**
*
* @param colorStr e.g. "#FFFFFF"
* @return String - formatted "rgb(0,0,0)"
*/
public static String hex2Rgb(String colorStr) {
Color c = new Color(
Integer.valueOf(hexString.substring(1, 3), 16),
Integer.valueOf(hexString.substring(3, 5), 16),
Integer.valueOf(hexString.substring(5, 7), 16));
StringBuffer sb = new StringBuffer();
sb.append("rgb(");
sb.append(c.getRed());
sb.append(",");
sb.append(c.getGreen());
sb.append(",");
sb.append(c.getBlue());
sb.append(")");
return sb.toString();
}
bạn có thể làm điều đó chỉ đơn giản như sau:
public static int[] getRGB(final String rgb)
{
final int[] ret = new int[3];
for (int i = 0; i < 3; i++)
{
ret[i] = Integer.parseInt(rgb.substring(i * 2, i * 2 + 2), 16);
}
return ret;
}
Ví dụ
getRGB("444444") = 68,68,68
getRGB("FFFFFF") = 255,255,255
Rất nhiều các giải pháp làm việc, nhưng đây là một sự thay thế.
String hex="#00FF00"; // green
long thisCol=Long.decode(hex)+4278190080L;
int useColour=(int)thisCol;
Nếu bạn không thêm 4278190080 (# FF000000) màu có độ alpha là 0 và sẽ không hiển thị.
Ngày hôm kia tôi đã được giải quyết vấn đề tương tự và thấy thuận tiện để chuyển đổi chuỗi hex màu để int array [alpha, r, g, b]:
/**
* Hex color string to int[] array converter
*
* @param hexARGB should be color hex string: #AARRGGBB or #RRGGBB
* @return int[] array: [alpha, r, g, b]
* @throws IllegalArgumentException
*/
public static int[] hexStringToARGB(String hexARGB) throws IllegalArgumentException {
if (!hexARGB.startsWith("#") || !(hexARGB.length() == 7 || hexARGB.length() == 9)) {
throw new IllegalArgumentException("Hex color string is incorrect!");
}
int[] intARGB = new int[4];
if (hexARGB.length() == 9) {
intARGB[0] = Integer.valueOf(hexARGB.substring(1, 3), 16); // alpha
intARGB[1] = Integer.valueOf(hexARGB.substring(3, 5), 16); // red
intARGB[2] = Integer.valueOf(hexARGB.substring(5, 7), 16); // green
intARGB[3] = Integer.valueOf(hexARGB.substring(7), 16); // blue
} else hexStringToARGB("#FF" + hexARGB.substring(1));
return intARGB;
}
Đây là một phiên bản để xử lý cả hai RGB và RGBA phiên bản:
/**
* Converts a hex string to a color. If it can't be converted null is returned.
* @param hex (i.e. #CCCCCCFF or CCCCCC)
* @return Color
*/
public static Color HexToColor(String hex)
{
hex = hex.replace("#", "");
switch (hex.length()) {
case 6:
return new Color(
Integer.valueOf(hex.substring(0, 2), 16),
Integer.valueOf(hex.substring(2, 4), 16),
Integer.valueOf(hex.substring(4, 6), 16));
case 8:
return new Color(
Integer.valueOf(hex.substring(0, 2), 16),
Integer.valueOf(hex.substring(2, 4), 16),
Integer.valueOf(hex.substring(4, 6), 16),
Integer.valueOf(hex.substring(6, 8), 16));
}
return null;
}
Nếu bạn không muốn sử dụng AWT Color.decode, sau đó chỉ cần sao chép nội dung của phương pháp:
int i = Integer.decode("#FFFFFF");
int[] rgb = new int[]{(i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF};
Số nguyên.giải mã xử lý # hoặc 0x, tùy thuộc vào cách chuỗi của bạn được định dạng
- 1. Chuyển đổi từ RGB int sang Hex
- 2. Chuyển đổi màu hex sang RGB và ngược lại
- 3. Chuyển đổi hex sang float
- 4. Làm thế nào để chuyển đổi màu HEX sang rgba bằng trình biên dịch Ít hơn?
- 5. Làm cách nào để chuyển đổi hex sang thập phân bằng Python?
- 6. Chuyển đổi hình ảnh Bayer 12 bit sang RGB 8 bit bằng cách sử dụng OpenCV
- 7. Làm cách nào để chuyển đổi hex sang thập phân bằng VB.NET?
- 8. Làm thế nào để chuyển một cấu trúc C sang java bằng cách sử dụng JNI?
- 9. Làm thế nào để chuyển mảng java sang mảng javaScript bằng cách sử dụng jsp?
- 10. Chuyển đổi chuỗi màu hex thành màu RGB
- 11. Làm thế nào để chuyển đổi Excel XLS sang CSV bằng cách sử dụng PHP
- 12. Chuyển đổi System.Drawing.Color thành RGB và Hex Value
- 13. Làm thế nào để chuyển đổi chuỗi hex để nổi trong Java?
- 14. Chuyển đổi số thập phân sang hex bằng Erlang?
- 15. Làm thế nào để chuyển đổi một đôi để hex?
- 16. Lấy tên màu bằng HEX hoặc RGB
- 17. Sửa YUV422 sang chuyển đổi RGB
- 18. Trong Java, làm cách nào để chuyển đổi chuỗi hex thành byte []?
- 19. Chuyển đổi system.windows.media.brush sang mã màu hex
- 20. Làm thế nào để chuyển đổi HEX sang NSString trong Objective-C?
- 21. Làm thế nào để chuyển đổi Hex sang nhị phân iphone
- 22. làm thế nào tôi có thể chuyển đổi một hình ảnh RGB sang CMYK và ngược lại trong Java?
- 23. Làm thế nào để chuyển đổi hình ảnh giữa CMYK và RGB trong Coldfusion (Java)?
- 24. Chuyển đổi giá trị màu nguyên sang RGB
- 25. Chuyển đổi docx sang pdf bằng cách sử dụng PHP
- 26. Làm thế nào để chuyển đổi chuỗi thành Hex và Hex thành chuỗi?
- 27. Chuyển đổi PDF sang JPG bằng cách sử dụng PHP
- 28. cmyk để rgb bằng cách sử dụng php
- 29. Làm thế nào để chuyển đổi HTML với mathjax thành latex bằng cách sử dụng pandoc?
- 30. Java: cách chuyển đổi màu RGB thành CIE Lab
Bạn có thể cho ví dụ về những gì bạn đang cố gắng chuyển đổi và những gì bạn đang cố gắng chuyển đổi không? Nó không rõ ràng chính xác những gì bạn đang cố gắng làm. – kkress
000000 sẽ chuyển thành màu đen rgb – user236501