繁体   English   中英

Hex到BGR Java中KML颜色的Hex转换

[英]Hex to BGR Hex conversion for KML color in Java

我正在构建一个实用程序,该实用程序可以在基于Web的地图上对地标进行标记,然后将其导出到KML,以便在Google Earth中使用。 问题是我给的十六进制值是标准RGB,而KML需要BGR(AABBGGRR,其中AA是alpha,但这与这里无关)。 对于简单的颜色(如红色(FF0000)),转换很简单:0000FF。 但是,我发现类似7DCCFF的东西(像淡蓝色),只是反转字符串不会在Google Earth中产生相同的颜色。 我在这里错过明显地明显的东西吗?

提前致谢!

我开发了一个简单的PHP工具,使用以下两个PHP函数来转换KML / RGB颜色:

function rgbToKml($color, $aa="ff"){
$rr = substr($color, 0, 2);
$gg = substr($color, 2, 2);
$bb = substr($color, 4, 2);
return $aa.$bb.$gg.$rr;
}
function kmlToRgb($color){
$rr = substr($color, 6, 2);
$gg = substr($color, 4, 2);
$bb = substr($color, 2, 2);
return $rr.$gg.$bb;
}

在此处查看示例: http : //netdelight.be/kml/

怎么样:

用正则表达式(?<=\\G..)

 String color = "123456";
 String[] list = color.split("(?<=\\G..)");
 for(String s : list) {
     System.out.println(s);
 }

这将为您提供以下输出:

12
34
56

现在,您只需在list[0], list[1] and list[2]之间进行一些交换

正则表达式(?<=\\G..)匹配一个空字符串,该字符串的最后一个匹配项\\G )后跟两个字符.. ), 前一个 字符(?<= )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM