Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   JPEGEncoder, 300 dpi и печать (http://www.flasher.ru/forum/showthread.php?t=157266)

Adskij 02.06.2011 22:04

JPEGEncoder, 300 dpi и печать
 
Подскажите, пожалуйста, как правильно сгенерировать изображения из флеша для печати.
Делаю так:

Код AS3:

// bd - готовая BitmapData
var jpgEncoder:JPEGEncoder = new JPEGEncoder();
var jpgStream:ByteArray = jpgEncoder.encode(bd);

Далее на стороне php:

PHP код:

$logo $GLOBALS['HTTP_RAW_POST_DATA'];
file_put_contents('logo.jpg'$logo); 

Естественно, получаю изображение с 72 dpi.

Теперь я модифицирую класс JPEGEncoder:

Код AS3:

//вместо 
//writeWord(0x48); // xdensity
//writeWord(0x48); // ydensity
writeWord(0x12c); // xdensity
writeWord(0x12c); // ydensity

Php часть остается та же.
Полученное изображение открываю в фотошопе - все отлично, правильный размер в милиметрах, разрешение - 300dpi.

Или же оставляю флеш как есть, а меняю dpi на стороне сервера:

PHP код:

$logo $GLOBALS['HTTP_RAW_POST_DATA'];
$logo substr_replace($logopack("cnn"1300300), 135);
file_put_contents('logo.jpg'$logo); 

И снова в фотошопе - 300dpi, правильный размер в милиметрах.

Но в любом из способов в изображении с "типа 300 dpi" получается не правильные размеры шрифтов, вот что получается:
http://ki44321.ho.ua/temp/ex1.gif
http://ki44321.ho.ua/temp/ex2.gif

Подскажите, пожалуйста, что и где я делаю не правильно - как сгенерировать из флеша изображение с 300 dpi и что бы размер шрифта в флеше соответствовал размеру шрифта при печати.

wvxvw 03.06.2011 00:58

Эко вы лихо поменяли dpi с 72 на 300 :) dpi - это точки на дюйм. Единственный размер, который для компютера имеет значение - это сколько пикселов есть в картинке. dpi это инструкция выводящему устройству сколько пикселов взять из картинки для того, чтобы заполнить ими один дюйм. Т.е. при 72 dpi дя того, чтобы напечатать ряд длинной в 1 дюйм и 1/72 дюйма высоты вам понадобится 72 пиксела. Соответственно, чтобы запечатать целый квадратный дюйм вам понадобится 72*72=5184 пикселов. Если вы собираетесь распечатать вашу картинку с разрешением 300 dpi, то вам, соответственно, понадобится 300*300=90000 пикселов данных.
Шрифты традиционно измеряются в пунктах. Существуют некоторые разногласия в том, сколько именно миллиметров, или пикселов в одном пунктe т.как они бывают американскими и европейскими. А такой вещи как 16-й размер - это ток у рубашек, кажется... для обуви как-то маловато :) Так вот, если вы говорите о размере шрифта, то нужно уточнять, в чем вы его собственно меряете, ну, или, по крайней мере, для Мака или ПК, т.как, они, кажется, до сих пор по-разному это делают...

Adskij 03.06.2011 01:05

Это все хорошо и понятно, поэтому 300dpi я заключил скобки, я понимаю что изображение от этого не стало с большим разрешением (но определяется как 300dpi)
Но есть множество конструкторов футболок, этикеток и т.д., в которых на печать выводится 16 шрифт, один-в-один, такой же как если бы 16-ый шрифт распечатывался из ворда, и пусть размер шрифта измеряется хоть в локтях:)
Я вероятно делаю что то принципиально не правильно - но что?

wvxvw 03.06.2011 01:46

Объясните пожалуйста человеку отучившимуся в полиграфическом институте 4 года + сверставшему не одну сотню газет, журналов и книг, что такое шрифт 16-го размера. Кстати, кажется у Лебедева популярно объясналось про типографские пункты и то, как они соотносятся с компьютерным представлением шрифта.
Кроме того, ну по-чесному можно судить о высоте шрифта только зная размер картинки в пикселах и то, с каким разрешением вы ее печатаете, или показываете на экране. Тогда определив, например, соотношение высоты картинки и высоты шрифта можно сказать, какого он размера. У вас нет в компьютере другого инструмента повлиять на высоту шрифта, кроме как задав ее относительно печатающего устройства. Т.е. высота шрифта в компьютере - относительная. Если вы с компютера петит выведете на футбольное табло, то он будет в миллион раз больше чем если вы его напечатаете в газете...

Adskij 03.06.2011 01:57

Очень просто - открываете текстовый редактор, ставите 16 размер шрифта и все)))
И как человек, отучившийся в полиграфическом институте 4 года + сверставшему не одну сотню газет, журналов и книг, можете мне подсказать как мне сделать так что бы у меня генерилась картинка так же как это проиходит в других флеш-конструкторах?
Какую дополнительную информацию мне нужно вам предоставить, что бы можно было соотнести размер изображения к размеру шрифта?

Добавлено через 5 минут
Я не просто так задаю вопрос на форуме, я долго пытался дойти сам, и у меня не получается.
Я спрашиваю конкретное техническое решение стандартной задачи, уже давно решенной.

Добавлено через 10 минут
На данный момент я вижу два решения:
1) - в моем конкретном случае размер шрифта на печати, например, 12 соответствует заданному в флеше 30, 11 - 29 и т.д. Можно просто в флеше вводить в комбобоксе выбора шрифта значение с поправкой.
2) Можно попробовать подобрать такое значение dpi, которое примерно сравняло бы размер шрифта в флеше и в готовой картинке, загруженной в фотошоп.
Я считая оба варианта не правильными, и спрашиваю совета, как сделать правильно.

cleptoman 03.06.2011 11:06

я вот не пойму..вопрос в пропорции?
72 = 16;
300 = x
?

2Sun 03.06.2011 11:41

Вопрос именно в пропорции, только ерунда получится при простом увеличении картинки например 800-600px до размера 3500-2480 (это формат А4 в пикеслях при разрешении 300dpi). Не верите - сохнаните скриншот со своего флеша - в фотошопе смените разрешение на 300 точек - и посмотрите что изменилось? НИЧЕГО. Shit IN - Shit OUT Сохраняйте в ПИКСЕЛЬНОМ размере изображение и не думайте о dpi. Это на качество печати не влияет.

wvxvw 03.06.2011 12:10

http://www.artlebedev.ru/kovodstvo/sections/81/
http://www.artlebedev.ru/kovodstvo/sections/70/
Налепить вам скриншотов, где 16 пунктов (я так понимаю, что именно их вы имеете в виду, когда говорите про размер) одного и того же шрифта будут отличаться в разных редакторах, или даже в одном и том же редакторе на разных операционных системах? Нет такой вещи как 16-й размер шрифта, так размеры определяются только у одежды. Для измерения высоты шрифта используется http://en.wikipedia.org/wiki/Point_%28typography%29 пункты, и они не стандартизированы в SI или ANSI, а кроме того, есть разночтения, и, в зависимости от того, например, пользуетесь ли вы Макинтошем, или PC выглядеть один и тот же размер шрифта будет у вас по-разному. Если вы возьмете газету напечатанную в США и Англии, то, опять же, один и тот же формально размер шрифта будет выглядеть по-разному.

Добавлено через 8 минут
Ах, и да, вы не можете изменить разрешение картинки при этом не изменив ее линейные размеры. Это значит, что изменив разрешение с 72 до 300, если вы хотите, чтобы на том же выводящем устройстве размер картинки остался прежний, вам на каждый уже существовавший пиксел прийдется придумать еще ~4. Как именно вы будете это делать - это уже ваше дело. Традиционно, например, считается хорошим тоном не применять bicubic сглаживание при увеличении компьютерных изображений, но иногда это может быть желаемым эффектом.

Adskij 03.06.2011 12:22

Попробую еще раз объяснить что я не могу понять.
Открываю флеш, пишу 16 шрифтом - "Это 16 шрифт".
Делаю экспорт картинки в джепег, разрешение - 72dpi.
Открываю картинку в фотошопе, пишу 16 шрифтом - величина шрифтов совпадают один-в-один.
Почему же получается что когда я делаю тоже самое в рантайме, величина шрифта скачет?

wvxvw 03.06.2011 12:36

Ок, еще раз. 16-го размера шрифта не существует, и в принципе не может быть. То, что вы видите - совпадение. Одно из возможных объяснений то, что обе программы запущены на одном компьютере и производятся одной и той же фирмой. Если вы будете измерять шрифт в единицах, которые вам доступны, у вас все получится. Если вы будете настаивать на использовании размеров без указания единиц, то, максимум, чего вы добъетесть, это опять же, совпадения с чем-нибудь.


Часовой пояс GMT +4, время: 20:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.