This topic and its replies were posted before the current version of LEADTOOLS was released and may no longer be applicable.
#1
Posted
:
Sunday, July 22, 2007 10:09:50 PM(UTC)
Groups: Registered
Posts: 49
Hi,
Is it possible to crop an image in elliptical shape using leadtool 15 in C# .net,if so then how??
Thanks
Manju
#2
Posted
:
Monday, July 23, 2007 11:50:58 PM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
Hello,
In general, there are no elliptical images. Images always have rectangular shape. There is no direct way to crop the image in elliptical shape.
However, you can get an elliptical shape for the image by adding an elliptical region on the image, and then fill the region outside the ellipse with black or white color.
Also, you may try to workaround this by creating an elliptical region on the image, convert this region to floater image and then copy or save the floater image.
You can do this by using the following code:
+-------------+
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim image As RasterImage = RasterImageViewer1.Image.Clone()
Dim xform As RasterRegionXForm = New RasterRegionXForm()
xform.ViewPerspective = RasterViewPerspective.TopLeft
xform.XOffset = 0
xform.YOffset = 0
xform.XScalarDenominator = 1
xform.XScalarNumerator = 1
xform.YScalarDenominator = 1
xform.YScalarNumerator = 1
Dim rc As Rectangle = New Rectangle(image.ImageWidth \ 4, image.ImageHeight \ 4, image.ImageWidth \ 3, image.ImageHeight \ 3)
image.AddEllipseToRegion(xform, rc, RasterRegionCombineMode.Set)
RasterImageViewer1.EnableTimer = True
RasterImageViewer1.RegionToFloater()
RasterImageViewer1.FloaterVisible = True
RasterImageViewer1.AnimateFloater = True
RasterImageViewer1.Image.MakeRegionEmpty()
image = RasterImageViewer1.FloaterImage.Clone()
RasterImageViewer1.FloaterImage = Nothing
RasterImageViewer1.Image = image.Clone()
RasterCodecs.Shutdown()
+-------------+
Please let me know if this helps.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#3
Posted
:
Tuesday, July 24, 2007 3:27:59 AM(UTC)
Groups: Registered
Posts: 49
If i use above code i will get exception at
image = RasterImageViewer1.FloaterImage.Clone()
that object reference not set to an instance,value of RasterImageViewer1.FloaterImage remaince null
and if i set RasterImageViewer1.FloaterImage=image
before
image = RasterImageViewer1.FloaterImage.Clone()
this statement it works but only draws ellipse on image.
Tell me how to extract any region like ellipse or free hand region from an image in c# .net and leadtools 15.Please Reply ASAP
Thanks
Manju
#4
Posted
:
Tuesday, July 24, 2007 11:54:59 PM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
Hello,
Try to use the following code:
+---------------------------+
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim image As RasterImage = RasterImageViewer1.Image
Dim rc As Rectangle = New Rectangle(image.ImageWidth \ 4, image.ImageHeight \ 4, image.ImageWidth \ 3, image.ImageHeight \ 3)
image.AddEllipseToRegion(Nothing, rc, RasterRegionCombineMode.Set)
RasterImageViewer1.EnableTimer = True
RasterImageViewer1.RegionToFloater()
RasterImageViewer1.FloaterVisible = True
RasterImageViewer1.AnimateFloater = True
image = RasterImageViewer1.FloaterImage.Clone()
RasterImageViewer1.FloaterImage = Nothing
RasterImageViewer1.Image = image.Clone()
rc = RasterImageViewer1.Image.GetRegionBounds(Nothing)
RasterImageViewer1.Image.MakeRegionEmpty()
RasterImageViewer1.Image.AddEllipseToRegion(Nothing, rc, RasterRegionCombineMode.SetNot)
Dim command As FillCommand = New FillCommand()
command.Color = New RasterColor(0, 0, 255)
command.Run(RasterImageViewer1.Image)
RasterCodecs.Shutdown()
+---------------------------+
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#5
Posted
:
Wednesday, July 25, 2007 2:47:09 AM(UTC)
Groups: Registered
Posts: 49
Hi,
Please check the attached form.cs file and screen shot,as show in image i want that only selected region will get displayed,so will you please tell me what changes i should do in code to get that result.
Please reply soon.
Thanks
Manju
#6
Posted
:
Sunday, July 29, 2007 9:46:30 PM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
Hello,
I checked your code with the screenshot image.
To display the selected region only on the RasterImageViewer, try to sue the following code:
+-----------------------+
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
RasterImageViewer1.InteractiveMode = RasterViewerInteractiveMode.Region
RasterImageViewer1.InteractiveRegionType = RasterViewerInteractiveRegionType.Freehand
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
RasterImageViewer1.RegionToFloater()
RasterImageViewer1.FloaterVisible = True
RasterImageViewer1.InteractiveMode = RasterViewerInteractiveMode.Floater
RasterImageViewer1.Image.MakeRegionEmpty()
RasterImageViewer1.Image = Nothing
RasterImageViewer1.Image = RasterImageViewer1.FloaterImage
Dim rc As Rectangle = RasterImageViewer1.Image.GetRegionBounds(Nothing)
RasterImageViewer1.Image.MakeRegionEmpty()
RasterImageViewer1.Image.AddEllipseToRegion(Nothing, rc, RasterRegionCombineMode.SetNot)
Dim command As FillCommand = New FillCommand()
command.Color = New RasterColor(RasterImageViewer1.BackColor)
command.Run(RasterImageViewer1.Image)
RasterImageViewer1.FloaterImage = Nothing
RasterImageViewer1.Image.MakeRegionEmpty()
End Sub
+-----------------------+
Please let me know if this helps.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
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.