簡體   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