Raster to Vector Converter SDK (DLL) 
version 1.1

Content

Brief

 

The detail of functions 

Main function

Converting raster into vector file

Setting parameters about tracing center lines

1. The parameters of connecting adjacent vectors

2.The parameters of deleting fixed-up vectors

Setting parameters about calculating width

1.Set width calculating parameter

2.Clear the values of width series
3.Add one value of width series
4.Set the mode of processing more width

5.Set the values of width series into default values

setting the parameters about adjusting angle

1. Set angle adjusting parameter

2. Clear all the values of angle series

3. Add one value of angle series

4.Set default angle series

5. Set ortho angle series

 

How to purchase the Raster to Vector Converter SDK DLL   

 

Brief
-------

Raster to Vector Converter SDK (DLL) is developed by DWGTool Software . It can convert raster image into vector image, and output into dxf or text file. The format of raster image include bmp, jpg, tiff, pcx and tga.

It provides one main function and 12 parameter setting functions to complete the task. Please refer to the VB & VC sample to get the more detail of using method.The follows is the detail of the 13 functions.

 

The detail of the functions

----------------------------------------------

 

1. Main function, convert raster file into vector file

 

int TraceRasterFile(

    HWND OwnerWindow,      // handle of owner window

    LPCTSTR Source,        // source raster file name

    LPCTSTR Dest,             // vector file name

    int DestType,            // vector file type

    int TraceType,          // tracing method

    int Threshold,           // threshold of 1-bit image

    double Straighten,  // straighten pixels into beelines

    int bRecCircle          // recognise the circle and arc

);

Return Value

 

if successfully, it return zero, otherwise it return none zero.

 

Parameters

OwnerHanlde

indicate the window which will receive the messages sent by DLL,and the messages can be the follow values:

 

#define WM_USER_TRACE_FINISHED (WM_APP+100)

Shows that the converting process is completed,if successfully, the WPARAM parameter is 0,otherwise the WPARAM parameter is none 0

#define WM_USER_TRACE_PROGRESS_BEGIN (WM_APP+101)
Shows begin a progress, and the LPARAM parameter is the LPCTSTR type, shows the progress name

#define WM_USER_TRACE_PROGRESS (WM_APP+102)
Shows the position of current progress, the WPARAM parameter is the current position of current progress, the max value is 100

#define WM_USER_TRACE_PROGRESS_END (WM_APP+103)
Shows the current progress is completed

 

source

Raster image file name, can be the .bmp, .jpeg, .tiff, .pcx, .tga formats raster file.

Dest 

Vector file name, the extension can be .dxf, .txt, .plt, .svg, .eps. But the output file type is decided by the below paramter DestType. 


DestType 

The format of outputing vector file, can be the follow values:

0-Dxf, 1-text, 2-HP/GL, 3-Svg, 4-EPS


 TraceType 

Trace method: 0 - Trace Outline, 1 - Trace Center line

 Threshold 

the threshold converting into 1-bit image, not greater than 255, If this value is negative, DLL will calculate one good threshold auto.

Straighten 

Straighten indicates when curve is pulled into beeline,the dot in the curve is the maximum distance from the beeline.

RecCircle 

if 0, don't recognise circle or arc, if none 0, recognise the circle and arc.

Remarks

The output file formats of .DXF, .SVG, .HP/GL,and .EPS are standard formats, but the text format is defined by us self. The follow is the format of text file:

Format of the text file

One text line is one line, or one circle, or one arc.and their formats is described as follow:

Line format

The format of one line like this:

lX start point, Y start point, X end point, Y end point

The leader character is lower-case letter "l", eg:

l1.0,2.0,10.0,11.0

Shows a line start from (1.0,2.0) to (10.0,11.0)

Circle format

The format of one circle like this:

cX center point,Y center point,Radius

The leader character is lower-case letter "c",eg:

c5.0,6.0,10.0

Show a circle, its center point is (5.0,6.0),and radius is 10.0

Arc format

The format of one arc like this:

aX center point,Y center point,Radius,Start angle,End angle

The leader character is lower-case letter "a", the angle units is radians, and arc must be counter-clockwise,eg:

a5.0,6.0,10.0,0.0,3.14159265

Shows a arc, its center point is (5.0,6.0),radius is 10.0, start angle is 0 degrees, and end angle is 180 degrees(PI radians), and this is a half circle.

And there is a lisp named "LoadText.lsp" in the package, which can read the text file into AutoCAD. Please load the lisp into AutoCAD first and then type the command "RTT" to read the text file.

 

If you only trace the outline of the raster image, call this function only, because all the parameter are set by this function. The follow parameters are for tracing center line.

 

 

Setting parameters of tracing center lines functions

The follow functions are used to setting parameters of tracing center lines. But these parameters haven't any means to tracing outline.

 

1.Set connecting parameter 

 

void SetConnectDistance(

    int Connect,     // If connect adjacent vectors

    int Distance     //  the maximum distance between adjacent vectors

);

 

Parameters

Connect

if Connect is 0, DLl don't connect the adjacent line, if Connect isn't 0, DLl will connect the adjacent line.

Distance

Connection distance is that when connect two beeline segments, the distance is the maximum value from one beeline segment dot to another beeline segment dot.

 

2. Set deleting parameter

 

void SetDeleteLength(

    int Delete,    // if delete the fixed-up vectors

    int Length     // the maximum length of fixed-up vectors

);

 

Parameters

 

Delete

If delete is 0, don't delete any vectors, if delete isn't 0, DLL will delete the lines which length is smaller than the parameter Length

Length

The maximum length of fixed-up vectors.

 

The follow functions set the parameters about calculating the width of vectors.

 

1.Set width calculating parameter

 

void SetCalcWidth(

    int Calc    // If calculating width of vectors

);

Parameters

 

Calc

if Calc is 0, DLL don't calculate the width of vectors, if Calc isn't 0, DLl will calculate the width of vectors.

 

2.Clear the values of width series

void DeleteAllWidthSeries(void);

 

Remarks

Clear all the values of width series.If you don't need any width series, you must call this function. Otherwise, if there are some values which you have added, them will still have effect to the tracing progress.

 

3. Add one value of width series

void AddWidthSeriesValueFun(

    double Width    // the width value that will be added

);

 

Parameters

 

Width

The width value that will be add into current width series.

Remarks

 Call this function continually to add all the values of width series. Before add the first value, you must call the function "DeleteAllWidthSeries"  to clear all the values of width series.

 

The width of vector will be rounded into the width series, For example, the values of width sereies are 0.0, 0.5, 1.0, and 1.5 mm,  if the width of a vector is 0.8mm, according to this width series, the width of this vector will be rounded to 1.0mm, but if the width of this vector is 0.7mm, it will be rounded to 0.5mm.

 

4.Set the mode of processing more width

 

void SetMoreWidthMode(

    int Mode    // the mode of processing more width

);

 

Parameters

 

Mode

The mode of processing more width, see remarks for details.

Remarks

 

Set the method of process the width which is greater than the maximun width in the current width series. It can be the follow values:

 

0 

all the width that is greater than the max width in the width series will be shrink to the max width., eg:
 if the width series is 1mm, 2mm, 3mm, the width of a vector is 5.8mm, it will be shrink into 3mm.

 

1

the width that is greater than the max width will not be changed,, eg:
 if the width series is 1mm, 2mm, 3mm, the width of a line is 5.8mm, it will not be changed, and it still is 5.8mm.


2

the width that is greater than the max width will be rounded into the width by the equal space method, eg:
 if the width series is 1mm, 2mm, 3mm, the width of a line is 5.8mm, it will be rounded into 6mm.


5. Set the values of width series into default values

void SetDefaultWidthSeries(void);

 

Remarks

 set the values of width series into default values, and the default values is: 0.5mm, 1.0mm, 2.0mm, the mode of processing more widht is 1, means no changing.

The follow functions set the parameters about adjusting the angle of vectors.

 

1. Set angle adjusting parameter

 

void SetAdjustAngle(

    int Adjust

);

 

Parameter
 

Adjust

If adjust is 0, DLL don't adjust the angle of vectors, and if adjust isn't 0, DLL will adjust the angle of vectors.

 

2. Clear all the values of angle series

 

void DeleteAllAngleSeries(void);

 

Remarks


if you clear all the values of angle series, you must add the new values of angle series, or call the functions "SetDefaultAngleSeries" or "SetOrthoAngleSeries" to add predefined values, otherwise, DLL can't adjust the angle, because there is no adjusting basis.



3. Add one value of angle series

int AddAngleSeriesValue(

    double MinAngle,    // minimum angle of angle series, the units is radians

    double MaxAngle,    // maximum angle of angle series, the units is radians

    double MainAngle    // main angle of angle series, the units is radians

);

 

Return Value

 

if successfully, the return valuse is none zero, otherwise is 0.

 

Parameters

 

MinAngle

Min angle of angle series, the units is radians. Please see remarks for details.

MaxAngle

Max angle of angle series, the units is radians. Please see remarks for details.

MainAngle

Main angle of angle series, the units is radians. Please see remarks for details.

Remarks

 

 Call this function continually to add all the values of angle series, before add the first value, you should call the function "DeleteAllAngleSeries".

 

The rule of angle adjusting is : when the angle of vector is greater than the min angle and is smaller than the max angle, it will be adjusted to main angle.eg:

 

if the angle series like this:

 

Main angle(Degrees)

Min angle(Degrees) 

Max angle(Degrees)

0.0

0.0  

1.0

90.0

91.0 

89.0

180.0

179.0

180.0

 

So, if one vector's angle is 89.5 degrees, its angle will be adjusted to 90.0 degrees. If another vector's angle is 88.5 degrees, its angle will not be adjusted, and still maintain 88.5 degrees.

     

Note

 

MinAngle isn't greater than MainAngle, and MaxAngle isn't smaller than MainAngle.

 

All the angle must be greater or equal to 0 degrees(0 radians), and must be smaller or equal to 180 degrees(PI radians).

4.Set default angle series

 

void SetDefaultAngleSeriesFun(void);

 

Remarks

Set the values of angle series into default values, and the default values is:
 

Main angle(degree)

Max angle(degrees)

Min angle(degrees)

 0.0

1.0

0.0

 30.0

31.0

29.0

 45.0

46.0

44.0

 60.0

61.0

59.0

 90.0

91.0

89.0

 120.0

121.0

119.0

 135.0

136.0

134.0

 150.0

151.0

149.0

 180.0

180.0

179.0



5. Set ortho angle series

void SetOrthoAngleSeries(void);

 

Remarks

 

Set the values of angle series into ortho values, and the ortho values is:

 Main angle(degrees)

 Max angle(degrees)

 Min angle(degrees)

 0.0

  1.0

  0.0

 90.0

  91.0

  89.0

 180.0

  180.0

  179.0



How to purchase Raster to Vector Converter SDK DLL
----------------------------------------

Recommend you to try out our software before you decide to buy our software. In the demo version, we will add a TraceART icon into the vector file. Of course, it will be deleted in the full version.

 

 

Buy now ( $799.5 USD)


Raster to Vector Converter SDK DLL Homepage: www.dwgtool.com


Copyright ©2000-2008 DWGTool Software. All Rights Reserved.