从给定屏幕尺寸的列表中选择最佳图像尺寸

时间:2015-10-09 23:34:31

标签: algorithm graphics

考虑到以下可能的屏幕尺寸:

720x480
1280x720
1920x1080
3840×2160

一系列类似于以下的图像尺寸(可能会有所不同,最大尺寸可以达到可用内存的限制):

Square          75              75
Large Square    150             150
Thumbnail       100             75
Small           240             180
Small 320       320             240
Medium          500             375
Medium 640      640             480
Medium 800      800             600
Large           1024            768
Large 1600      1600            1200
Large 2048      2048            1536
Original        3264            2448

并且某些图片可能无法在" Original"尺寸可能不大1024x768

我需要为当前屏幕尺寸选择最佳图像。

我不确定如何处理这个问题。语言将是Brightscript,但我真的在寻找一种选择算法,或者至少是一些关于如何编写选择算法的建议。

1 个答案:

答案 0 :(得分:0)

  

我需要为当前屏幕尺寸选择最佳图像

这取决于最好的"最好的"。人们可以尝试优化宽度,其他人可以尝试优化高度,或者同时尝试两者(这将尝试最小化剩余区域)。让我们优化剩余区域。这是一个伪代码:

given screen s0
initialize best_image := None
           best_remaining_area := INF
for image in image_list:
     if s0.height < image.height or s0.width < image.width:
         continue
     remaining_area  = s0.height * s0.width  - image.height * image.width 
     if remaining_area < best_remaining_area:
         best_remaining_area = remaining_area
         best_image = image
 return best_image