Comments 39
Как дополнение, было бы интересно узнать, можно ли всё-таки заставить Word сохранять эти изображения в другом формате без такого шаманства.
Если не ошибаюсь, то при вставке через меню картинка вставляется именно в том формате, каком её подсунули. Кстати, достаю я обычно картинки из ворда сохраняя документ в виде html страницы.
Word хранит картинки ровно в том формате, в котором вы их туда засунули. Даже если пересохранять *.doc в *.docx. Подтверждено многолетним опытом и сегодняшними (для полной уверенности) экспериментами.
А есть особенность поведения при вставке из буфера обмена? Попробовал, 2 раза png получалось. Всегда ли так?
Выделить файл изображения, Ctrl+C, перейти в документ, Ctrl+V. Формат сохраняется оригинальный. Word 2010.
Про файл-то понятно. Вопрос именно про графику из буфера обмена.
Покопался немного с буфером. Насколько я понял, графика в буфер отправляется в формате Windows Clipboard Image (*.clp). Соответственно информация о первоначальном формате теряется и программа-получатель вправе самостоятельно решать, в какой из общеупотребительных форматов эту графику конвертировать при вставке.
Это я понимаю. Вопрос другой был:
>А есть особенность поведения при вставке из буфера обмена? Попробовал, 2 раза png получалось. Всегда ли так?
Т.е. что именно Word решает? Всегда ли png будет?
>А есть особенность поведения при вставке из буфера обмена? Попробовал, 2 раза png получалось. Всегда ли так?
Т.е. что именно Word решает? Всегда ли png будет?
*.clp — не формат изображения, а формат-контейнер содержимого буфера обмена. Данные в нём хранятся в виде множества записей вида {тип данных, название типа данных, данные как набор байтов}. Никаких специальных возможностей для хранения именно графики на уровне формата не предусмотрено.
Формат, в котором графическое изображение (и вообще, любые данные) будет помещено в буфер всецело зависит от программы, которая туда эти данные помещает.
Данные об исходном формате файла-источника данных в общем случае теряются при копировании.
Есть энное количество стандартных форматов данных: текст в unicode и OEM (однобайтной) кодировках, растровое изображение (bitmap), векторное изображение (EMF) и несметное количество форматов, специфичных для конкретных программ.
Многие программы помещают данные в буфер сразу в нескольких форматах и вот из них-то, как правило, и идёт выбор при вставке.
Корректно написанная программа старается взять данные из буфера обмена в формате с максимально богатыми возможностями из числа поддерживаемых.
Здесь и кроется причина, по которой в файле из топика изображения хранились в EMF, а не в виде растровых изображений: Acrobat Reader при копировании помещает изображение в буфер обмена и в виде Bitmap и в виде EMF. А так как векторный формат богаче по возможностям, то его-то и выбирает при вставке MS Word.
P.S. В MS Word, насколько я помню, можно явно выбрать желаемый формат из числа доступных вставляя данные комбинацией клавиш Ctrl-Alt-V вместо Ctrl-V.
Формат, в котором графическое изображение (и вообще, любые данные) будет помещено в буфер всецело зависит от программы, которая туда эти данные помещает.
Данные об исходном формате файла-источника данных в общем случае теряются при копировании.
Есть энное количество стандартных форматов данных: текст в unicode и OEM (однобайтной) кодировках, растровое изображение (bitmap), векторное изображение (EMF) и несметное количество форматов, специфичных для конкретных программ.
Многие программы помещают данные в буфер сразу в нескольких форматах и вот из них-то, как правило, и идёт выбор при вставке.
Корректно написанная программа старается взять данные из буфера обмена в формате с максимально богатыми возможностями из числа поддерживаемых.
Здесь и кроется причина, по которой в файле из топика изображения хранились в EMF, а не в виде растровых изображений: Acrobat Reader при копировании помещает изображение в буфер обмена и в виде Bitmap и в виде EMF. А так как векторный формат богаче по возможностям, то его-то и выбирает при вставке MS Word.
P.S. В MS Word, насколько я помню, можно явно выбрать желаемый формат из числа доступных вставляя данные комбинацией клавиш Ctrl-Alt-V вместо Ctrl-V.
Проверил, что выдаёт акробат с помощью EnumClipboardFormats():
CF_DIB (8)
CF_BITMAP (2)
CF_MAX (17) — не совсем понимаю, что это, но, похоже, граница системных форматов
CF_ENHMETAFILE (14)
CF_METAFILEPICT (3)
Некий формат с описание «ASEL» (50178), похоже, внутренний адобовский.
Система сама выполняет преобразование CF_DIB <-> CF_BITMAP и CF_ENHMETAFILE <-> CF_METAFILEPICT
Word предлагает три формата на выбор: Bitmat («Точечный рисунок»), DIB («Аппаратно-независимый рисунок») и EMF («Метафайл Windows»). DIB и Bitmap хранятся в PNG, а EMF — в EMF, разумеется. При одинаковом сжатом размере (т.е. docx-файла в данном случае) EMF внутри куда больше — и вставляется дольше.
CF_DIB (8)
CF_BITMAP (2)
CF_MAX (17) — не совсем понимаю, что это, но, похоже, граница системных форматов
CF_ENHMETAFILE (14)
CF_METAFILEPICT (3)
Некий формат с описание «ASEL» (50178), похоже, внутренний адобовский.
Система сама выполняет преобразование CF_DIB <-> CF_BITMAP и CF_ENHMETAFILE <-> CF_METAFILEPICT
Word предлагает три формата на выбор: Bitmat («Точечный рисунок»), DIB («Аппаратно-независимый рисунок») и EMF («Метафайл Windows»). DIB и Bitmap хранятся в PNG, а EMF — в EMF, разумеется. При одинаковом сжатом размере (т.е. docx-файла в данном случае) EMF внутри куда больше — и вставляется дольше.
Пока не появился формат docx, я вытаскивал картинки из doc через «Сохранить как...» в формате html (в этом случае все картинки в исходном формате сохранялись в отдельный подкаталог).
Уменьшить ширину векторного изображения? Это как?
Может IrfanView снижает детализацию?
Может IrfanView снижает детализацию?
а не проще файнаРидером???
Файнридер по меньшей мере поставит везде f вместо ſ (это старинное альтернативное начертание s). Ну и все прочие прелести распознавания источника конца восемнадцатого века.
Если мне не изменяет память, в Word есть функция подготовить документ для веб. В которой вы указываете до какого разрешения ужать графику. Пользовался ей давно, еще в 2003, так что в версиях с лентой, похоже придется поискать.
Не поленился, нашел: Кликаем на изображение: Работа с рисунками → Формат → Сжать рисунки.
96 ppi это разрешение экрана — т.е. достаточное для отображения на экране.
96 ppi это разрешение экрана — т.е. достаточное для отображения на экране.
Причем любое приложение из пакета МС Оффис старше 2007 поддерживает данную функцию — Image-> Compress-> 96dpi.
И да, оффис сжимает по умолчанию данные в своих контейнерхах(docx, xlsx, pptx, пр), но сохраняет изображение в том формате, в котором они были туда вставлены.
И да, оффис сжимает по умолчанию данные в своих контейнерхах(docx, xlsx, pptx, пр), но сохраняет изображение в том формате, в котором они были туда вставлены.
На учёбе был любопытный случай. Дали учебные пособия, которые видимо такие же студенты набирали. Внутри пособий множество принципиальных схем чёрным цветом на белом фоне. Одно из пособий весило около 24 мегабайт в doc. Поскольку я тогда ещё пользовался OpenOffice.org я просто попробовал пересохранить документ в odt. Каково же было моё удивление, когда документ похудел до 600 килобайт. Вроде бы там картинки были в BMP.
bmp на ура архивируется)
Собственно я хотел показать, что формат хранения документа может очень повлиять на его размер. В моём случае сохрание в odt означало упаковку всего документа в zip-архив. Нечто похожее произойдёт при сохранении в docx. НО! Незабываем, что можно ещё было сохранить изображение в более оптимальном формате (bmp явно самый неотптимальный вариант для чёрно-белого изображения о очень предсказуемой структурой, напоминаю, у меня там были в основном принципиальные схемы, которые состоялии из линий и окружностей), тогда бы и в doc документ получился заметно меньше.
Если это именно чёрно-белое (не градации серого), то скорее всего меньше bmp никто не сделает. Чёрно-белый bmp одним байтом 8 пикселей покрывает.
Я что-то глубоко сомневаюсь, что при всей чёрно-белости рисунка использовался бит на пиксель. Скорее какой-то «стандартный» формат от 8 до 24 бит на пиксель.
bmp в любом случае формат без сжатия. Он вам что белый лист 2000 на 2000 в 4 mb сделает. Что полноценную графику. Вы его c png путаете
Ну, вообще сохранение в OpenOffice или в docx — это неплохой способ достать оригиналы изображений из файла. По крайней мере в том качестве, как они туда были вставлены.
Оно же (по крайней мере OpenOffice) — неплохой способ разглядеть формулы в защищённом экселевском файле.
Оно же (по крайней мере OpenOffice) — неплохой способ разглядеть формулы в защищённом экселевском файле.
Проще сохранить в html, о чём я писал выше :) И сделать это можно даже в самом Word 2003.
Можете скинуть исходный файл? (:
Sign up to leave a comment.
Картинки в doc-файле: снижение веса хирургическим путём