Подумайте насчет этого:
- Получаем разрешение экрана (1280 * 800)
- Получаем количество пикселов на дюйм (96dpi = 3.779dpmm) (соответственно реальный размер монитора в миллиметрах = (1280/3.779 = 338.71) на (800/3.779 = 211.69) (33.8 * 21.1 см)
- Теперь мы знаем, размер изображения, предположим, 200 * 200
- Также получим на нашем экране 52.92 * 52.92
- Получите проценты от полученных значений 15.65% * 25.08% и примените их к пикселам (хотя не уверен, можете другим способом вернуться к пикселам)
А теперь давайте посмотрим сюда: 200/(1280/100) = 15,625% на 200/(800/100) = 25%. Невероятно, не правда ли? Только если вспомнить, что есть такая штука, которая называется "погрешность вычислений" и, знаете ли вы, какую погрешность даст 5 операций деления вместо двух?
Правда если вчитаться в ваш вопрос, тогда вот такое действо намечается:
- Определите константу, которая определяет "идеальный" монитор, т.е. на котором ваша картинка идеальных размеров (описывающая размеры)
- Определите реальный размер картинки на другом экране
- Теперь вычислите, нужно ли ее уменьшить или увеличить, относительно идеального монитора
Как-то так. Можете вносить поправки, это первое что приходит в голову. Теперь стоит формализировать, как вычислять значение "идеального монитора" вместо константы, но пока в голову ничего не лезет.