Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > расчитать размеры картинки по размеру бумаги


Автор: mstdmstd 18.4.2016, 13:38
Всем привет,
есть список размеров бумаги http://www.papersizes.org/a-paper-sizes.htm с элементами
Код

A2    420 x 594 mm      16.5 x 23.4 in
A3    297 x 420 mm      11.7 x 16.5 in
A4    210 x 297 mm      8.3 x 11.7 in
A5    148 x 210 mm      5.8 x 8.3 in
A6    105 x 148 mm      4.1 x 5.8 in


В php/javascript приложении необходимо выбрав размеров бумаги и ориентацию бумаги portrait / landscape 
отобразить картинку по размеру бумаги. Причем эта картинка может быть как больше выбранного размера, так и меньше.
Подскажите, пожалуйста, как правильно расчитать размеры этой картинки javascript-ом и зависят ли это расчеты от монитора ?

Автор: igorold 19.4.2016, 08:05
А что у вас не получается?
Зная размеры картинки и размер бумаги, вычисляете минимальный коэффициент из коэффициентов по вертикали и горизонтали и применяете его к картинке ...

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/raschitat-razmery-kartinki-po-razmeru-bumagi-id5714b948ae201592728b4567#findElement_E7045_5715bc90ae20153c0ff99ceb_0

Автор: mstdmstd 19.4.2016, 11:03
То есть если выбрать A5(portrait)   
который в милиметрах имеет ширину  148 x 210 mm  а в дюймах    5.8 x 8.3 in
Выбираем картинку 750*800(отношение ширины к высоте равно 0.9375)  Надо расчитать координаты этой картинки чтобы они входили в a5 с этой же пропорцией ширины к высоте
А как милиметры перевести в пиксели, так как это отношение зависит от монитора?

У меня на ноуте Resolution    
Код

    : 1920x1080 pixels Размер диагонали 19

Если подставить эти параметры  например сюда http://universe3000.net.ua/blog/14/

Код

Соотношение сторон:    16 : 9
Размер пикселя:    0.219 мм
PPI:    115.942 пкс/дюйм


Если смотреть тут http://www.translatorscafe.com/cafe/RU/units-converter/typography/7-4/%D0%BF%D0%B8%D0%BA%D1%81%D0%B5%D0%BB%D1%8C_%28X%29-%D0%BC%D0%B8%D0%BB%D0%BB%D0%B8%D0%BC%D0%B5%D1%82%D1%80/

148 x 210 mm переводит к 561 x 796
Но как он посчитал - отноcительно моего монитора?

У нас есть функция для пересчета выбранного размера в пикссели
Код

             switch( size ) {
                case 'a6':
                    params.width    = (105*300)/25.4;
                    params.height    = (148*300)/25.4;
                    break;
                case 'a5': 
                    params.width    = (148*300)/25.4;     //  => 1748
                    params.height    = (210*300)/25.4;   //  => 2480
                    break;
                case 'a4':
                    params.width    = (210*300)/25.4;
                    params.height    = (297*300)/25.4;
                    break;
                case 'a3':
                    params.width    = (297*300)/25.4;
                    params.height    = (420*300)/25.4;
                    break;
                case 'a2':
                    params.width    = (420*300)/25.4;
                    params.height    = (594*300)/25.4;
                    selectedSize    = 'a2';
                    break;
                case 'fb_cov':
                    params.width    = (223.04375*300)/25.4;
                    params.height    = (106.627083333*300)/25.4;
                    break;
            }


как я понимаю в ней 300 это и есть этот ppi ?
И она от вычислений для моего монитора и совсм не понятно что с этим делать ...
Так как картинка которую я выбрал для a5 совем неправильные размеры...

Автор: igorold 19.4.2016, 13:39
Если размеры бумаги даны в мм, то может и картинку пересчитать в мм?  а потом уменьшать или увеличивать ...

картинка 750*800 px - это примерно 199*212 мм
нужно вписать в лист
148 x 210 мм
соотношение:
148/199 = 0,74
210/212 = 0,99

т.е. к картинке нужно применить меньший коэффициент - 0,74

м.б. нужно учесть поля (отступы от краев), тогда на размер полей нужно уменьшить размеры листа.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/raschitat-razmery-kartinki-po-razmeru-bumagi-id5714b948ae201592728b4567#findElement_E7045_57160ae4ae2015100cf99e53_0

Автор: ragefit4 19.4.2016, 22:17
Модератор: Сообщение скрыто.

Автор: mstdmstd 20.4.2016, 06:54
Цитата(igorold @  19.4.2016,  13:39 Найти цитируемый пост)
картинка 750*800 px - это примерно 199*212 мм

А то что устройства могут быть с разным разрешением учитывается ?

Автор: igorold 20.4.2016, 08:59
Для чего учитывать? тебе надо вписать картинку в бумагу ... бумага и картинка отображаются в "устройствах" одинаково ... не понял твоих заморочек ...

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/raschitat-razmery-kartinki-po-razmeru-bumagi-id5714b948ae201592728b4567#findElement_E7045_57171ac2ae20155f48f99d03_0

Автор: mstdmstd 21.4.2016, 08:10
  Да я похоже запутался
Код

картинка 750*800 px - это примерно 199*212 мм

Поделитесь, как Вы пересчитывали и какие будут размеры для остальных форматов?
Например,  gimp умеет создавать картинки по размерам a3-a6 но при ppi=300
  http://i.imgur.com/ewbpeX1.png
  
  А если у меня монитор 115.94 PPI ?
  

Автор: igorold 21.4.2016, 14:05
я пересчитывал по вашей ссылке:

Если смотреть тут http://www.translatorscafe.com/cafe/RU/units-converter/typography/7-4/%D0%BF%D0%B8%D0%BA%D1%81%D0%B5%D0%BB%D1%8C_%28X%29-%D0%BC%D0%B8%D0%BB%D0%BB%D0%B8%D0%BC%D0%B5%D1%82%D1%80/

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/raschitat-razmery-kartinki-po-razmeru-bumagi-id5714b948ae201592728b4567#findElement_E7045_5718b3ffae20153159f99cb4_0

Автор: ksnk 21.4.2016, 14:22
А к чему вычисления? Всегда можно указать размеры картинки в cm или pt. И не важно сколько пикселей в картинке, если явно указаны размеры...

Добавлено через 1 минуту и 7 секунд
Еще есть `media print`, но, надеюсь, про это известно...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)