Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.23;
Скачать: CL | DM;

Вниз

Сохранить Metafile   Найти похожие ветки 

 
Viktor Kushnir ©   (2003-08-19 14:40) [0]

Создаю MetaFile :TMetaFile
Затем metaFileConvas :TmetaFileCanvas
Заполняю свойства
MetaFile.width := 2000;
MetaFile.height := 1000;
Рисую на TmetaFileCanvas что мне нужно
Удаляю TmetaFileCanvas через metaFileCanvas.free
Сохраняю содержимое MetaFile.SaveToFile

И получаю только левый верхний угл изображения и картинку с разрешением 2ххх на 2ххх точек.

Почему?

Если сдеаль финт ушами и нарисовать содержимое MetaFile на TBitmap (размера 2000х1000) и сохранить уже TBitmap, то все нормально.
{Bitmap.canvas.Draw(0,0metafilecanvas);
Bitmap.savetofile("...");}
Но для больших изображений (10000x5000) этот способ не годится.

Как правильно устанавливать размер MetaFile"a и сохранять его содержимое?


 
MBo ©   (2003-08-19 17:43) [1]


procedure TForm1.Button1Click(Sender: TObject);
var mf:TMetaFile;
mfc:TMetaFileCanvas;
begin
MF := TMetafile.Create;
MF.MMWidth:=2000*2540 div (Screen.PixelsPerInch);
MF.MMHeight:=2000*2540 div (Screen.PixelsPerInch);
with TMetafileCanvas.Create(MF, 0) do
try
Brush.Color := clRed;
Ellipse(0,0,2000,2000);
finally
Free;
end;
MF.SaveToFile("e:\qq.emf");
end;


 
Viktor Kushnir ©   (2003-08-19 19:12) [2]

Спасибо щас попробую.


 
Viktor Kushnir ©   (2003-08-24 09:08) [3]

Все отлично работает, но почему привязка к Screen.PixelsPerInch?
Можно его привязать к другому разрешеннию? К принтеру например?

Да и на выходе сохраняется все избражение, но получается оно в пикселях в ~3 раза больше чем было заявлено. То есть было 2000, стало 6073 например. Это не критично, но хотелось бы знать - почему?


 
MBo ©   (2003-08-24 13:22) [4]

>почему привязка
метафайлы привязаны к конкретному контексту
TMetafileCanvas.Create(MF, 0) означает привязку к десктопу

>получается оно в пикселях в ~3 раза больше чем было заявлено
У меня в пикселах 2003*2008


 
Viktor Kushnir ©   (2003-08-25 09:17) [5]

Ага, то есть стоит мне указать не 0, а DC принтера - и все будет ок?



Страницы: 1 вся ветка

Текущий архив: 2003.12.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-75330
Фагот
2003-12-01 11:01
2003.12.23
Инсталляция FB


1-75165
Checist [root]
2003-12-09 15:03
2003.12.23
!!! ОБРАЩЕНИЕ К ЭЛЕМЕНТАМ !!!


1-75261
axx
2003-12-09 10:44
2003.12.23
Вопрос по диалогам.


3-75118
Bless
2003-11-28 16:27
2003.12.23
Как передать параметры в х.п.?


1-75184
Mishenka
2003-12-11 16:08
2003.12.23
Можно ли OpenDialog использовать только для одного каталога?