簡體   English   中英

如何基於百萬像素和寬高比計算分辨率

[英]How to calculate resolution based on megapixels and aspect ratio

如何在C#中計算基於百萬像素的確切分辨率?

假設我有一個5000x4000像素的圖像,並且想重新縮放到0.6mpx,如何獲得精確的水平和垂直分辨率來獲得保持原始縱橫比的0.6mpx圖像?

我有這個:

int nXPixels=5000;  // original image Width
int nYPixels=4000;  // original image Height
float fRatio=5000/4000;    // original image aspect ratio
int nNewPixelResolution=600000; // 0.6mpx new resolution

int nNewXPixels=?
int nNewYPixels=?

百萬像素的量等於分辨率的長度和寬度的乘積除以一百萬。 因此,對於您的5000x4000像素,您將擁有20 Mpx。 要將其重新縮放為0.6Mpx,但要保持比例,您只需要按20Mpx / 0.6Mpx的平方根重新縮放每個維度,以便在將新計算的維度相乘時,結果將等於0.6Mpx

因此,您的計算應類似於:

ratio=sqrt(20/0.6)
newWidth=oldWidth/ratio
newHeight=oldHeight/ratio

如果再將newWidthnewHeight相乘,則結果應為0.6Mpx或600000 px

int nXPixels=5000;  // original image Width
int nYPixels=4000;  // original image Height
//float fRatio=5000/4000;    // original image aspect ratio
int nNewPixelResolution=600000; // 0.6mpx new resolution
int nOldPixelResolution=nXPixels*nYPixels;
double conv = Math.sqrt((double)nNewPixelResolution/(double)nOldPixelResolution);
int nNewXPixels= (int)Math.round(nXPixels*conv);
int nNewYPixels= (int)Math.round(nYPixels*conv);

暫無
暫無

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

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