我有一個從0-1的值列表。我想通過使用將這些浮點值轉換爲RGB值的漸變將此列表轉換爲圖像。 Java中有沒有提供這種功能的工具?Java中的漸變顏色查找
1
A
回答
0
0應該映射0
1應該映射255
記住,你需要他們的3做一個顏色
所以乘以255浮點數,並投它爲int。
0
也許GradientPaint可以做你想做的。目前還不清楚如何將浮點值列表轉換爲漸變。通常情況下,漸變由兩種顏色和一些在這些顏色之間插值的機制組成。 GradientPaint
實現線性漸變。
0
假設有由對應於RGB值64個000三元組的陣列,這樣的:
final Random rand = new Random();
final float[] f = new float[320*200*3];
for (int i = 0; i < f.length; i++) {
f[i] = rand.nextFloat(); // <-- generates a float between [0...1.0[
}
說你有一個具有一個大小的類型INT_ARGB的320×200(64萬個像素)(一個BufferedImage每值+ 8位8位爲α水平):
final BufferedImage bi = new BufferedImage(320, 200, BufferedImage.TYPE_INT_ARGB);
然後,你可以轉換你浮陣列RGB值和填充圖像這樣做:
for (int x = 0; x < 320; x++) {
for (int y = 0; y < 200; y++) {
final int r = (int) (f[x+y*200*3] * 255.0);
final int g = (int) (f[x+y*200*3+1] * 255.0);
final int b = (int) (f[x+y*200*3+2] * 255.0);
bi.setRGB(x, y, 0xFF000000 | (r << 16) | (g << 8) | b);
}
}
請注意,你會顯示這個圖像,它會顯示爲灰色,但如果你放大它,你會看到它實際上是由完全隨機的彩色像素。這只是隨機數發生器是如此的好,它在屏幕上都看起來灰色:)
相關問題
- 1. Javascript顏色漸變
- 2. 顏色漸變(ColdFusion)
- 3. 獲取給定顏色的漸變,其中顏色位於漸變的中間
- 4. 顏色漸變的背景
- 5. Three.js行的顏色漸變
- 6. textcolor的顏色漸變
- 7. 帶顏色漸變的Borderpane
- 8. 帶顏色漸變的UIBeziepath
- 9. 用顏色製作顏色漸變:
- 10. 顏色1和顏色2的n種顏色的漸變
- 11. 逐漸改變顏色
- 12. JFreechart LookUpPaintScale顏色漸變
- 13. CSS創建顏色漸變
- 14. DarkGDK顏色漸變代碼
- 15. vPython - 逐漸改變顏色
- 16. 漸變顏色大小
- 17. 漸變顏色背景?
- 18. 漸變顏色拉斐爾
- 19. Android漸變顏色aarrggbb
- 20. Css漸變邊框顏色
- 21. CSS:漸變文字顏色?
- 22. FabricJS漸變顏色值
- 23. MPAndroidChart填充顏色漸變
- 24. JFreeChart系列漸變顏色
- 25. 生成顏色漸變
- 26. 生成顏色漸變
- 27. matplotlib補丁中的顏色漸變?
- 28. AchartEngine中折線圖的漸變顏色
- 29. R中surface3d的顏色漸變?
- 30. LWUIT中標籤的漸變顏色
這只是轉換爲RGB Photoshop相似的值,對於梯度勞倫斯建議一個很好的工具,你可能不需要做的RGB轉換 – 2010-12-12 20:55:58