This topic and its replies were posted before the current version of LEADTOOLS was released and may no longer be applicable.
#1
Posted
:
Wednesday, July 1, 2009 3:06:06 AM(UTC)
Groups: Registered
Posts: 19
Dear Friends,
I am using Leadtools v16.0 and MS Visual Studio 2005 in order to load and display an image. When the image is displayed, I want to plot some straight lines on it. According to the examples, I am using
“ri = codecs.Load(path);
RasterImageViewer riv = new RasterImageViewer();
riv.Image = new RasterImage(ri);
using (RasterImageGdiPlusGraphicsContainer container = riv.Image.CreateGdiPlusGraphics())
{using (Pen pen = new Pen(Color.FromArgb(alpha, Color.Red), w))
{
Point p1 = new Point(x1, y1);
Point p2 = new Point(x2, y2);
container.Graphics.DrawLine(pen, pp1, pp2);
}
}”
The main problem occurs because of the displayed images are in 8-bits gray scale and are about 200 Mpx. When the images are turn into a GDI, it changes from 8-bits to 32-bits, I computer has enough memory.
My question is, is there another way to plot a line on image?
Thanks in advanced,
Martín
#2
Posted
:
Thursday, July 2, 2009 6:41:39 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
Martin,
1. Do you want to make the line part of the image's pixel data or do you want to draw it on the viewer control?
2. How long is the line? If it will only be on a small part of the image (not from one corner to opposite corner), it is better not to create a GDI container for the whole image. Instead, create a smaller image, draw the line on that image, then combine the 2 images.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#3
Posted
:
Friday, July 3, 2009 4:08:41 AM(UTC)
Groups: Registered
Posts: 19
Dear Maen,
I only want to draw it on the viewer control. This line is on an large part of the image, from one side to the opposite side. Is there another way that the GDI?
Thanks.
#4
Posted
:
Saturday, July 4, 2009 10:58:36 PM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
If you want to draw the line on the viewer (not directly on the image), you can use the following code:
+------+
Pen pen = new Pen(Color.FromArgb(alpha, Color.Red), w);
Point p1 = new Point(x1, y1);
Point p2 = new Point(x2, y2);
rasterImageViewer1.CreateGraphics().DrawLine(pen, pp1, pp2);
+------+
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#5
Posted
:
Wednesday, July 15, 2009 4:34:48 AM(UTC)
Groups: Registered
Posts: 19
Dear Maen,
The first of all, I am out of the office for 10 days. So, sorry for my late. I have try, but the line is drawn for a very short time and then it disappears. How can I maintain the line? Anyway, maybe I could draw the line in ther rasterImage modiffing it, showing it. How can I do?
Thanks in advanced.
Martin
#6
Posted
:
Wednesday, July 15, 2009 5:02:21 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
To keep the line after drawing it, you need to draw it directly on the image.
After drawing the line, you can convert the image to 8-bit by using the ColorResolutionCommand Class.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#7
Posted
:
Thursday, July 16, 2009 2:27:11 AM(UTC)
Groups: Registered
Posts: 19
Dear Maen,
Thank you for your advices. I don't know how to paint a line with Leadtools. Is there some method or I must paint pixels by pixel?
Thanks in advanced.
Martin
#8
Posted
:
Thursday, July 16, 2009 4:18:00 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
You can use RasterImage.CreateGdiPlusGraphics().Graphics.DrawLine method. In this case, if the image is changed to 24-bit or 32-bit, you can convert it to 8-bit by using the ColorResolutionCommand class or GrayscaleCommand Class.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#9
Posted
:
Friday, July 17, 2009 3:17:20 AM(UTC)
Groups: Registered
Posts: 19
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.