elkiors
asked on
printing TBitmaps
How do I print a TBitmap object without having to display it on a form and using CopyRect. I've tried using TBitmap.LoadFromFile and then using a Printer.Canvas.StretchDraw but all I get is a completely blank page
ASKER
For Matvey
This looks like it could be the answer. I can't believe how quickly you responded. Cheers ! Now, just give me a while to drop your code into my project to see what happens, afterall, I'm fairly new to this and I'm not sure just by looking at, what's going on. I can see you're messing with memory and pointer and stuff so I'm gonna need some time to digest it.
See ya soon
Elkiors.
This looks like it could be the answer. I can't believe how quickly you responded. Cheers ! Now, just give me a while to drop your code into my project to see what happens, afterall, I'm fairly new to this and I'm not sure just by looking at, what's going on. I can see you're messing with memory and pointer and stuff so I'm gonna need some time to digest it.
See ya soon
Elkiors.
ASKER
Matvey:
I hope you don't take it the wrong way. I didn't mean to REJECT your answer, I just need time to see.
If it works the points are yours
thanks again
I hope you don't take it the wrong way. I didn't mean to REJECT your answer, I just need time to see.
If it works the points are yours
thanks again
ASKER
For Matvey :
You are a god among men !
The code works great ... Now, if I can just maintain aspect ratio and get it in the centre of the page ....
Anyway the points are definately yours, if only I can work out how to give you them !!!
thanx
Elkiors.
You are a god among men !
The code works great ... Now, if I can just maintain aspect ratio and get it in the centre of the page ....
Anyway the points are definately yours, if only I can work out how to give you them !!!
thanx
Elkiors.
ASKER
For Matvey:
I've had an idea, post a blank answer to the question and then I can pass the points on to you that way. You'll get another 'A' rating aswell.
Thanks again
Elkiors.
I've had an idea, post a blank answer to the question and then I can pass the points on to you that way. You'll get another 'A' rating aswell.
Thanks again
Elkiors.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks again Matvey
I didn't mean to bother you for more answers, I was just thinking while I was typing, you've given some more ideas to follow up.
May I say this one thing and I think it applies to everyone.
If everyone cared as much as the people who are hanging around this site then the world would be definately a better place
Thanxs again
I just hope I can repay by helping someone else with a question at some point, although I think I have a fair way to go to be at the same level of genius as you lot.
Thanxs
Elkiors.
I didn't mean to bother you for more answers, I was just thinking while I was typing, you've given some more ideas to follow up.
May I say this one thing and I think it applies to everyone.
If everyone cared as much as the people who are hanging around this site then the world would be definately a better place
Thanxs again
I just hope I can repay by helping someone else with a question at some point, although I think I have a fair way to go to be at the same level of genius as you lot.
Thanxs
Elkiors.
I'm sure you can find some questions you can help with to someone. There are lots of simple questions, I think this one was simple too. I just wrote this code not a long time ago so I recalled quickly. In fact I'll release a bit more enhanced component than TPrinter soon to the Delphi pages. It will mainly just fix some fonts problem. Want to know when it's released? -Post your email and I'll tell you...
c u on another thread!
c u on another thread!
ASKER
Hi Matvey,
It's sounds like you've got something good going. I'd certainly be interested to see it when it's released. Like I said earlier, I'm still only a novice but I picking up loads of ideas.
At the moment I'm working on a colour manager for bitmaps cos I think the colour manager in Corel 7 is crud to be mild. If I manage to finish it and get it working properly I see if I can get it posted up here somewhere.
Incidently, my username is a bit ambiguous, if anyone wants to talk directly you can find me at
darren.elkiors@mcmail.com
I really think this site's a great idea.
Thanx
elkiors. (darren)
It's sounds like you've got something good going. I'd certainly be interested to see it when it's released. Like I said earlier, I'm still only a novice but I picking up loads of ideas.
At the moment I'm working on a colour manager for bitmaps cos I think the colour manager in Corel 7 is crud to be mild. If I manage to finish it and get it working properly I see if I can get it posted up here somewhere.
Incidently, my username is a bit ambiguous, if anyone wants to talk directly you can find me at
darren.elkiors@mcmail.com
I really think this site's a great idea.
Thanx
elkiors. (darren)
I see you want to stretch your bitmap above all the page, right? That will be something like this:
Var
Info: PBitmapInfo;
InfoSize: Integer;
Image: Pointer;
ImageSize: DWORD;
DIBWidth, DIBHeight: Longint;
bmp: TBitmap;
**************************
GetDIBSizes(bmp.Handle, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
Image := AllocMem(ImageSize);
GetDIB(bmp.Handle, 0, Info^, Image^);
with Info^.bmiHeader do
begin
DIBWidth := biWidth;
DIBHeight := biHeight;
end;
With Printer Do
StretchDIBits(Canvas.Handl
0, 0, DIBWidth, DIBHeight, Image, Info^,
DIB_RGB_COLORS, SRCCOPY);
FreeMem(Info, InfoSize);
FreeMem(Image, ImageSize);
StretchDraw won't work because you give it Printer.PageWidth and Printer.PageHeight as a parameter, and they are actually 3000 pixels each for just a 300 DPI printer.
c u, Matvey