printer.PaintPicture увеличивает объем данных

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

printer.PaintPicture увеличивает объем данных

Сообщение miwutka » 29.08.2006 (Вт) 12:22

делаю Printer.PaintPicture loadPicture(path), X1,X2 .....

файл на диске весит 300кб.
Смотрю диспетчер печати. Вижу - висит документ в 6метров.

На печать выходит страница А4 вся в нужной картинке. Соответственно картинка тоже размером А4(150dpi на каком-то там разрешении).

1)Что за штука такая странная? Почему размер увеличился в РАЗЫ?

2) Если никаких параметров еще не указывать, то почему то указанная картинка печатным размером А4 на выходе из принтера печатается увеличенной- четверть на листе. Почему так?
Указывал ScaleMode и задавал размеры в ручную, но он все равно выводит неверно на печать. Подогнал сам размеры...
... я расправляю крылья ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.08.2006 (Вт) 12:40

Все от того, что у тебя нет понимания процесса.
Описанное поведение нормально.
Lasciate ogni speranza, voi ch'entrate.

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 29.08.2006 (Вт) 13:58

ну а объяснить процесс, чтобы я его понял?
... я расправляю крылья ...

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 29.08.2006 (Вт) 14:01

ээ.. вот мысль нагрянула.. LoadPicture ее как загружает?? как бмп?? _) неужели он во столько ее увеличивает..

И с размерами по умолчанию неясно...
... я расправляю крылья ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.08.2006 (Вт) 14:04

Если ты выводишь на принтер отмасштабированный растр, он будет занимать именно столько места, сколько занимает отмасштабированный. Т.е. весь формат А4 с разрешением 150DPI (или сколько у тебя задано). При этом не имеет никакого значения, что файл, с которого этот растр брался, занимает 300Кб, потому что в StdPicture (который возвращает LoadPicture) он лежит в виде растра, а не JPG-файла, т.е. несжатый.
Так что, во-первых, 6 метров это нормально (полагаю, пересохранив JPG в BMP получится именно такой размер), во-вторых, задавай размеры, когда выводишь картинку через PaintPicture, тогда будет выводится в том размере, который ты задашь. Ну и проверь, что ScaleMode выставлен правильный, т.е. ты задаешь размеры именно в этих единицах.
Lasciate ogni speranza, voi ch'entrate.

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 29.08.2006 (Вт) 14:45

да, спасибо, допер.

размеры выставлял. бесполезно.
... я расправляю крылья ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.08.2006 (Вт) 14:55

Приведи код, как ты печатаешь.
Потому что у меня вывод растра происходил именно так, как мне было надо.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 126

    TopList