簡體   English   中英

Java啟動畫面比例因子

[英]Java Splash Screen scale factor

Java似乎可以縮放作為jvm開關傳遞的啟動屏幕,例如

java -splash:splash_file.png

取決於顯示器的尺寸。

在來源上,我可以看到對某些本地計算的比例因子的引用。 有人知道該比例因子是如何計算的嗎?

我假設它是通過圖形的標准方法計算的,該方法在無界的“世界”(世界坐標)中獲取給定大小的圖像,將其轉換為歸一化的設備(認為單位平方),然后再次將其轉換為屏幕坐標。 轉換包括點的平移和縮放。

給定初始屏幕的世界窗口(在沒有平移或縮放的情況下其顯示方式),可以按以下方式獲得標准化的(x,y)值:

第一部分是平移,第二部分是比例因子。 這樣可以減少圖像包含在1 x 1的正方形中,因此所有(x,y)值都是分數。

要從歸一化坐標系轉換為屏幕坐標系,請按以下方式計算值:

這些操作通常在轉換和縮放矩陣乘法的幫助下有效完成。 也可以旋轉。

這實際上是一個底層視圖,顯示了如何拍攝自己喜歡的圖像,形狀等,並在所有尺寸的屏幕上一致地呈現它們。 我不確定在您給出的示例中它是如何完成的,但可能會有所不同。 請參閱本演示文稿的開頭以直觀表示。

該值實際上既取決於jdk實現,也取決於體系結構。

我瀏覽了OpenJDK代碼 ,對於許多體系結構,它都被簡單地硬編碼為1。

例如,在Windows綁定中,您將找到:

SPLASHEXPORT char*
SplashGetScaledImageName(const char* jarName, const char* fileName,
                       float *scaleFactor)
{
    *scaleFactor = 1;
    return   NULL;
}

然后將scaleFactor值存儲到通過_GetScaleFactor方法通過JNI訪問的結構中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM