convert pdf to image c# free : C# read pdf form fields Library control class asp.net web page html ajax gemrayman0-part601

GemRay for Windows 
User
s Guide 
by Robert W. Strickland 
Copyright
© 
2012 
All Rights Reserved 
Version 1.0.0 
The purpose of GemRay is to predict what a faceted gemstone will look like when it is cut 
and to optimize its angles for the best optical performance. GemRay renders images of 
faceted gemstones created by GemCad using the technique of ray tracing. GemCad for 
Windows is a computer-aided design program for faceted gemstones. You can find GemCad 
at www.gemcad.com
GemCad is concerned chiefly with the geometry of the gemstone. Its 
output is a faceting diagram with angles that you can use to cut the gemstone with a 
commercial faceting machine. GemRay is concerned with the optical performance of a 
gemstone and how the stone will appear when cut. GemRay runs under Microsoft Windows
® 
XP or later. 
Table of Contents 
Introduction
Acknowledgements
Ray Tracing Basics
The 
GemRay Options
Dialog
The Animation Player
Lighting Models
Head Shadow
Colors
Angles
Transferring Angles to 
GemCad
Optimization
Refractive Index and Dispersion
Tilt and Rotation
Tutorials
Bugs
Bottom
Acknowledgements 
I am indebted to Bob Long and Norm Steele for their pioneering contributions to the field of 
computer-aided facet design. Bob helped me understand the physics of ray tracing and 
shared their source code for ray tracing. 
I am also indebted to Bruce Harding for his system of quantifying the optical performance of 
a gemstone. His work 
Faceting Limits,
Gems and Gemology, 1975 was the first to 
document the importance of head shadow
and made a profound impact when I first saw it. 
GemRay is based in part on the work of the FLTK project, the Fast Light Toolkit, 
http://www.fltk.org
. Many thanks to its designer, Bill Spitzak, and all that contribute to this 
C# read pdf form fields - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
save data in pdf form reader; extracting data from pdf files
C# read pdf form fields - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extract data from pdf forms; filling out pdf forms with reader
project. I am also indebted to Colin Jones
for his Gleam scheme patch to FLTK that gives 
FLTK widgets a nicer look. 
Many thanks also to Tom Herbst for his Windows BOG program www.boghome.com
. BOG is a 
front-end to my DOS GemRay program. Much of the optimization in GemRay is based on 
Tom
s ideas. The popularity of BOG in the faceting community is a testament to his many 
contributions. 
If you want to print this User
s Guide, I recommend using the Google Chrome
web browser. 
Other browsers split the figures between pages or even cut them off at the bottom. 
Ray Tracing Basics 
Ray tracing is a technique of generating an image by following the paths of individual rays 
of light as they are refracted and reflected by objects. Light travels in straight lines. 
GemRay follows light rays backwards from the viewer
s eye through a pixel in the image 
plane and to the gemstone. When the ray hits the gemstone, part of the ray is reflected by 
the surface of the gemstone and part is refracted (bent) and continues inside the gemstone. 
The refracted ray travels inside the gemstone until it hits a second facet. This facet reflects 
all or part of the light ray back into the gemstone. If the ray is partially reflected, the 
remainder is refracted as it leaves the gemstone. The reflected ray continues until it hits a 
third facet, and the process repeats until its intensity dwindles to a small level. The 
software keeps track of the intensities, color and direction of every ray that exits the 
gemstone. The software combines all of the intensities of every split ray with the intensity 
of the light source in that direction and calculates a color value for that pixel. 
Why trace light rays backwards? It is because many more light rays leave a light source than 
make it to the eye of the viewer. By tracing rays backwards through the stone GemRay only 
has to trace only the light rays that actually hit the viewer
s eye and the gemstone. 
Unlike GemRay for DOS, GemRay for Windows models colored stones. It also models 
dispersion
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#.NET extract image from multiple page adobe PDF file library Extract various types of image from PDF file, like XObject Image, XObject Form, Inline Image
flatten pdf form in reader; pdf form field recognition
C# PDF Text Extract Library: extract text content from PDF file in
XDoc.PDF ›› C# PDF: Extract PDF Text. C# PDF - Extract Text from PDF in C#.NET. Best C#.NET PDF text extraction library and component for free download.
how to extract data from pdf to excel; extracting data from pdf forms to excel
The GemRay Options 
Dialog 
When you first run GemRay, it will display 
the Options dialog box. Typically, the first 
thing you will want to do is to press the 
Open 
button. This will bring up the 
standard Windows File/Open file chooser. 
After GemRay opens the file, it will fill in 
some of the fields. You will see the name 
of the file in the GemCad File box. Another 
way to open GemRay is to drag and drop a 
file onto GemRay
s desktop icon. 
As you have already discovered, the 
button brings up this help file in your 
default web browser. 
The 
button pops up the About copyright 
and credit notice. 
The Image Size is the size of the images GemRay renders. The size is in pixels and includes 
the background but not the Windows border. GemRay remembers this value. How big you 
should make this will depend on the speed of your computer. 
After you set parameters, you can press the Render 
button. 
The Animation Player 
After you press the Render button, the Options dialog 
will hide itself, and GemRay will render a series of 
animation frames at the different tilt angles. If your 
computer has a multi-core processor, GemRay will 
render one frame in each core in parallel to speed up 
the calculation. While it renders the animation, you will 
see a progress bar. After GemRay finishes calculating 
the frames, it will play them back as an animation loop 
in its animation player. The player will automatically 
reverse to tilt the stone. (If your tilt amount was set to 
180°,
GemRay will play the animation as a seamless 
loop.) 
At the bottom of the animation player are several 
controls. As you repeatedly press the Pause/Play button, its image will toggle between 
and 
as the animation plays and pauses. You can change the speed with the control 
labeled FPS, frames per second. A larger number corresponds to a faster speed. You can use 
the up and down arrows to change the speed, or you can drag the mouse to select the text 
and type in a new number. You can use the Light Model control to select the lighting model 
(see below). When the animation is paused, you can select any single frame in the 
sequence. Tilt angle increment is one degree. Frame 0 is maximum tilt one direction and 
C# PDF Library SDK to view, edit, convert, process PDF file for C#
PDF SDK for .NET allows you to read, add, edit, update Please refer to this C# guide to learn how to for .NET to insert, delete and update PDF form fields in C#
make pdf form editable in reader; export pdf form data to excel spreadsheet
C# PDF File Compress Library: Compress reduce PDF size in C#.net
C#.NET PDF Document Optimization. resources: Since images are usually or large size, images size reducing can help to reduce PDF file size Flatten form fields.
collect data from pdf forms; extracting data from pdf to excel
frame number equal to twice the tilt amount is the maximum tilt the other direction. Frame 
number equal to the tilt amount gives the face-up frame. You can use the arrows to 
increment the or decrement the frame number, or you can edit the number with the 
keyboard. 
When the animation is paused, you can press the Save 
As 
button to save the current animation frame as a 
JPEG image file. GemRay will bring up the standard 
Windows Save As dialog to enter the file name. If you 
are preparing an image for publication or the web, you 
can use a trick to get a better-quality image. You can 
increase the image size by a factor of two or three. 
Then use an image processing program to scale the 
image down by 50% or 33%. This will reduce the 
jaggies
and sharpen the image. There are also online 
image scaling services on the web that accomplish the 
same thing. Search the web for 
image resize 
online
(without the quotes). The image at the right was 
made at a size of 900 pixels and scaled down to 300 pixels. Every pixel on the screen is an 
average of 9 pixels in the original image. Compare it to screen shot above, particularly the 
bottom edge of the stone. 
When the animation is playing, the icon on the Save As button changes to 
. When you 
click it, you can save all of the animation files as individual JPEG files, one frame per file. 
GemRay will pop up the Save As dialog to prompt you for a file name. GemRay will take this 
file name, drop any extension and add an underscore, a three digit number and the 
.jpg
extension. The number starts at 000 and goes to twice the tilt amount. For instance, if you 
enter 
tribble
and the tilt amount
 is set to 10°, the files will be named
tribble_000.jpg
through 
tribble_020.jpg
The Graph 
button will pop up a graph 
of brightness versus tilt angle. Here is an 
example for my Tribble design in quartz. 
The solid curves are for the whole stone 
outline, and the dashed lines are the 
brightness for the area outlined by the 
table facet. The angle range is chosen by 
the Tilt Amount parameter in the Options 
dialog. Note that for two-fold mirror-image 
symmetry and four-fold mirror-image 
symmetry, the negative tilt angles 
actually represent a different tilt direction 
than the positive tilt angles. 
If you right click on the graph, GemRay 
will pop up a menu with two choices. The Copy text choice will copy the numerical values of 
brightness vs. tilt angle to the Windows clipboard. If you want to save this as a text file, 
you can paste it into Windows Notepad. The Copy image choice will copy the image window 
to the Windows clipboard. This has exactly the same effect as pressing 
Alt-Print 
Screen
. You can then paste the image into a graphics program such as Windows Paint and 
How to C#: Basic SDK Concept of XDoc.PDF for .NET
›› C# PDF: Basic SDK Concept. C#.NET PDF: Basic Concept of .NET XDoc.PDF SDK. Introductions to Classes and APIs Included in .NET XDoc.PDF for C# Programming.
extract data from pdf to excel online; how to type into a pdf form in reader
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
form. Append one PDF file to the end of another and save to a single PDF file. Merge PDF with byte array, fields. Merge PDF without size limitation. RasterEdge
extract data from pdf using java; export pdf data to excel
save the image. 
You can resize the graph. Here is an example of a graph of 
brightness for a standard round brilliant in diamond. I 
resized it before I copied it to the Windows clipboard with 
the right click and Copy image choice. Notice the dip from 
5° to 5°. This is the cancellation of the
surface reflection 
of the table facet due to the head
shadow
. The surface 
reflection is part of the brightness calculation. The table 
facet acts like a partially reflective mirror. When you tilt a 
mirror, the reflection moves through an angle twice the 
angle of tilt of the
 mirror. This is the reason why a 10° 
head shadow causes a dip at 5°.
Notice also that the 
legend block repositions itself to try to avoid the curves. 
You have to close the graph and the animation player to make the Options dialog reappear. 
Should you want to compare two graphs side-by-side, you can run two copies of GemRay and 
open the same design file. Leave one copy unchanged and do all of your editing on the other 
one. 
Lighting Models 
GemRay calculates images from several lighting models 
simultaneously. The best way to understand these models is 
to imagine that you are in a large dome-shaped room, like a 
planetarium. The stone is near the center of the spherical 
dome, and you are some distance above it. On the ceiling of 
the dome are projected various patterns of light and dark. 
The simplest model to understand is the ISO model. ISO is 
short for isometric. Isometric means 
equal measures.
Light 
comes equally from everywhere on the dome. The black circle in the center is the head 
shadow
. This is shared by all of the lighting models and is discussed below. The ISO model 
is similar to a room whose ceiling is completely covered with florescent light panels. 
The next light model is the COS or cosine light model. Light 
intensity varies as the cosine of the elevation angle. It is 
completely dark on the horizon and white straight overhead 
(except for the head shadow disk) and smoothly varying 
between. 
C# PDF Field Edit Library: insert, delete, update pdf form field
C#.NET Demo Code: Add Form Fields to an Existing PDF File in C#.NET. This C# demo will help you to add form fields to PDF file. String
how to save pdf form data in reader; fill in pdf form reader
.NET PDF Document Viewing, Annotation, Conversion & Processing
XDoc.PDF SDK for .NET is completely developed in .NET, compatible with Visual C#, Visual Basic, and Delphi for .NET. Read form data from PDF form file.
extracting data from pdf into excel; extract pdf form data to excel
New in GemRay for Windows is the SC2 light model. SC2 
stands for sine times cosine times two. It is white at a 45°
elevation and black directly overhead and black on the 
horizon. It is sort of a fuzzy doughnut of light. 
The ISO, COS, and SC2 light models don
t allow any light from 
behind the stone, as if the room is carpeted with black carpet. 
In these three models, the stone is surrounded with a bezel 
that prevents any light from hitting the back of the gemstone. 
(What GemRay considers to be the 
back
depends on how the 
stone is rotated.) 
The RND light model is the random light model. It has a 
mottled pattern of light and dark on the dome. Like the SC2 
model, it is darker above and towards the horizon. The 
mottled pattern makes it easier to see the scintillation of a 
gemstone. 
The RND light model also has randomly distributed spotlights. 
These are many times brighter than the areas between the 
lights. These are shown schematically by the yellow dots. The 
lights are actually colorless white, not yellow. From the top 
view of the dome, they look like ellipses, but actually all are 
circular. The spotlights are all identical but randomly distributed. The spotlights are crucial 
for identifying dispersion
. The spotlights also cause surface reflections on the facets as well 
as bright sparkling reflections in the body of the stone. 
The RND lighting model is the only one that allows light to enter the back of the stone. 
All of the lighting models allow you to select the color of the background. This is the color of 
the floor visible outside of the perimeter of the stone. 
Most, if not all, faceted gemstones will window or 
leak
as they are 
tilted. Windowing occurs when light rays enter the pavilion of the 
gemstone from the back and travel through the stone. The round 
brilliant pictured at the right shows one of these ray paths. Objects 
behind the gemstone can be seen from the front of the gemstone. As 
an aid to identify windowing, the RND
light model has a separate color 
for light that enters the back of the stone from the floor and returns to 
the viewer. It is as if the stone is placed in a bezel, and the inside of 
the bezel mounting is painted with the windowing or 
leak
color. 
Head Shadow 
All of the light models include a circular head shadow. GemRay lets you adjust the half-
angle of this disk. The angle is measured down from the zenith to the perimeter of the 
circle. Head shadow is the reflection of the viewer
s head in a gemstone. The word shadow 
is perhaps not the best word for the phenomenon. Certainly the viewer does cast a shadow 
on a gemstone. Whether this actually affects how the stone looks from the viewer
s point of 
view depends on the optics of the gemstone. Only light rays that hit the viewer
s eye that 
entered the stone nearly parallel to the viewer
s line of sight can cause a head shadow. A 
well-designed gemstone has few such problem areas. With poorer designs, there are areas 
in the stone where the only place from which light could have come to your eye is from your 
own body. It is not as if you can see a reflection of yourself in the same way that you can 
identify your reflection in a mirror, rather it is more like looking at a picture of yourself in a 
kaleidoscope. 
With an actual gemstone, you can often identify areas of head shadow with the following 
procedure. Hold the stone with one hand using tweezers or a stone grabber. Place your free 
hand just in front of your face and wiggle your fingers or wave your hand. If you see motion 
in the reflection pattern of the gemstone that is in sync with the movement of your fingers, 
you have located head shadow. Repeat with your fingers in front of your forehead and body. 
The sources of the problem are light rays that leave a gemstone in a 
direction opposite but nearly parallel to the direction they entered the 
stone. Such rays have to come from near the viewer
s eye to be seen 
by the viewer
s eye. Consider a round brilliant in quartz, shown at 
right. Pretend your line of sight is looking down a light ray on the left 
side of the stone. From where did this light ray come? Since the rays 
on the right side of the stone are nearly parallel to the rays on the left 
side of the stone, the only place from which they could have come is 
your head! 
GemRay
s black circle is an approximation to a disembodied head 
above the gemstone. GemRay
s head shadow half-angle is by 
default 10°. How
significant is this? Well, how big is your head? 
My head is about 10 inches (25 cm) from chin to the top of my 
head, so let
s say it has a radius of 5 inches (12.5 cm). To what 
viewing distance does this correspond? 
We can draw a right triangle with one leg 5 inches (12.5 cm) and 
the
 opposite angle of 10°. The gemstone is at the tip of the 
triangle. How long is the other leg of the right triangle labeled x? 
If you do the trig, you
ll discover it
s about 29 inches (74 cm). I 
got out my yardstick, and I can
t comfortably hold a gemstone 29 inches from my eye. If the 
ratio of your head height to arm length is about the same as mine, you can assume that a 
10° head shadow is about as far from your
eye as you can hold a stone with arm 
outstretched. Closer viewing distance means bigger head shadow half-angle. 
Head shadow is too important to be ignored, and GemRay
s
 default 10° shadow is not very 
large. If you still don
t believe in the head shadow effect, you can set the head shadow half-
angle to zero, and GemRay will leave out the head shadow in all of the models. 
Head shadows are common with lower refractive index materials in designs with conical 
pavilions. A triangular pyramidal pavilion can eliminate head shadow and give a better tilt 
performance. 
Sometimes head shadow is used as a visual effect in gemstone design. The star in the Lone 
Star cut is cut at 45° and makes a head shadow. A
Portuguese cut has concentric rings of 
head shadow that are visually appealing. 
Colors 
GemRay allows you to choose three different colors: the Stone 
color, the Background color and the Leak color. Consider the rather 
ugly combination of colors at the right. The body of the stone is 
yellow. The background outside of the stone is a pale blue. The leak
color is bright red. 
Here is the result of these color choices with a stone tilted to the 
north. The red areas are places where the stone windows or 
leaks.
The Leak color only applies to the RND light model. The leaks will be 
shown in black in the other lighting models. The black areas are 
where there is a head shadow
. The primary purpose of the Leak 
color is to identify where the stone windows and clearly distinguish 
these from reflections of the head shadow. Note that there is still 
some detail visible in the red areas. These are partial internal 
reflections. 
The stone color you chose is close to the final color of the gemstone after it is faceted. It 
will usually be darker than the color of a stone when viewed with a white card behind it. The 
color you pick is translated into three absorption coefficients for the three primary colors of 
light. Light decays exponentially inside a gemstone. If a ray travels twice the distance 
through a stone, it will decay twice as much. 
GemRay
s color chooser is part of the FLTK
toolkit. The color in 
the left box is the new color you are editing. The box on the left 
contains the previous color. You can drag the little dot around 
the map to choose a color. You can also drag the individual red, 
green, and blue numbers with the mouse by clicking in a number 
box, holding down the mouse button and dragging left and right. 
The chooser uses the HSV model that allows you to select the 
hue, saturation and value of the color. The little dot controls the 
hue (angle) and saturation (distance from the center). The 
vertical slider controls the value of the color. A value of zero for 
the value is black for any hue or saturation. To get shades of brown, move the dot to the 
orange sector and move the value slider down. To get white (clear stone or white 
background) click near the center and then individually drag the numbers until they are all 
1.000. There is no easy way to save a color. You can copy and paste the individual red, 
green, and blue numbers to an external file. 
The spinner at the top allows you to choose how the color is displayed numerically. A color 
is still selected exactly the same way, but its numerical values are displayed differently. The 
default rgb setting allows you to specify the numerical proportion for the red, green and blue 
components from zero to one. The hex setting is similar, but the numbers are displayed in 
hexadecimal from 00 to FF corresponding to 0 to 255. The hex values can be used to match 
a color used in other programs. The hsv setting display shows the hue, saturation and value 
directly. 
Angles 
GemRay can scale the pavilion and crown independently. You can enter either a Scale Factor 
or a New Angle. The scale factors and the angles are linked: if you enter or change a scale 
factor, GemRay will change the corresponding New angle. If you change the New angle, 
GemRay will change the corresponding scale factor. The scale factor is the ratio of the 
tangents of the angles 
scale factor = tan(new angle) / tan(old angle)  
The Old angle is the angle of a key facet. But which angle? There are lots of them! GemRay 
automatically chooses a key facet for the pavilion and the crown using simple rules. It 
displays these as the Old angles. For the pavilion, GemRay chooses the facet with the 
lowest elevation angle (but not the culet facet). This is often the angle of one of the facets 
at the point of the bottom of the stone. For the crown, GemRay chooses the facet with the 
largest area as viewed from above (but not the table facet). 
For many designs, you can figure out easily which facets GemRay picks for the key facets. 
For others the process is not so easy. After GemRay optimizes the angles, you need a way 
to edit the table of angles. To do this, you need to use the process of tangent ratio scaling. 
To do this manually with a calculator, you take the tangent of the angle, multiply it by the 
scale factor and then take the inverse tangent (arctan). 
Transferring the Angles to GemCad 
There are three ways to transfer the angle information from GemRay to GemCad. The first is 
the most natural way if you can visually identify which facet GemRay selected to be the key 
facet. Click in the key facet to bring up the Facet dialog box. Double check that the angle in 
GemCad
New angle box matches the angle in GemRay
Old angle box. Type in (or paste 
in) GemRay
s new angle and press the Apply button. 
The second way is to locate the key facet angle in the Cutting Instructions view and click on 
that line. In the dialog box that pops up, you can then type (or paste) in the new angle in 
the New Angle box and click the Apply Edit button. 
If you cannot figure out which facet is the key facet, there is an alternative method that will 
always work. It takes a few more steps, but it
s a turn-the-crank procedure that doesn
require you to find the key facet. To scale the crown, in GemCad, do 
Edit 
Scale 
Z  
Type (or paste) the crown scale factor in the Numerator box. Leave the default value of one 
in the Denominator box. Press the OK button. If GemCad asks you about rounding indices, 
click the No button. 
For the pavilion, repeat the above steps with 
Edit 
Scale 
Z  
and new pavilion angle in the Numerator box and leave a value of one in the Denominator 
box. 
How to copy and paste from GemRay to GemCad? Click in a text entry box. Do 
ctrl-A
(or 
drag the mouse) to select the text. Then do 
ctrl-C
to copy the text to the Windows 
clipboard. Then go to GemCad, click in a text entry box, do 
ctrl-A
(or drag the mouse) to 
select what is there and do 
ctrl-V
to paste over it. These steps work with just about any 
Windows application. 
Optimization 
GemRay can automatically choose the angles to optimize the optical performance of a 
gemstone. GemRay uses an algorithm called the Downhill Simplex Method to find the 
best
angles. This method also called Nelder-Mead method, after its discoverers. Sometimes it
called the Amoeba method. The Siplex method searches for a minimum of a function of 
several variables. We want a maximum instead of a minimum, but the problem is 
mathematically equivalent, since you can just take the reciprocal of the objective function. 
Let
s call the function to be maximized the merit function and the function to be minimized 
the objective function. Our merit function is just a weighted average of the brightness 
percentages from the different lighting models at different tilt angles. 
Our problem has two dimensions: the pavilion and crown scale factors. For our two-
dimensional problem, the simplex of the Downhill Simplex Method is just a triangle. The 
method starts off with a small right triangle with the right angle vertex on the pavilion and 
crown scale factors you have entered. For the other two vertices, it just offsets a small 
amount in pavilion and crown scale factors. GemRay calculates the relative merits of the 
three vertices. Using the relative heights of the three vertices it uses a simple set of rules 
to transform or move the triangle to find a new triangle that is nearer the minimum. It 
might move one or all of the vertices. For each new point, the method calculates the 
objective function. From the relative heights of the objective function, it decides how to 
transform the triangle for the next step. The process repeats until, at the final stage, the 
triangle shrinks to a single point at the minimum. 
When you press the Optimize 
button, GemRay will 
pop up the Optimization dialog so you can select the 
values that control the optimization. The Tilt Angle 
maximum and increment set the maximum tilt for the 
optimization. At the default setting of 30 for the 
maximum and 10 for the increment, GemRay will tilt the 
stone 
–30°,
–20°,
–10°,
0, 
10°,
20°,
and 
30°
and 
calculate a small 100 pixel image for each tilt angle. The 
brightness values are then multiplied by the weight 
factors in the upper portion of the dialog. 
With the default settings, the optimization gives a great 
deal of weight to tilt performance since there are six 
tilted images and only one face-up image. For this 
reason, you might want to increase the weight value for 
one or more of the face-up brightnesses. When you 
make changes in the weights, make big changes, say a 
factor of 5 or 10. A 10% change in one of the weights is 
unlikely to change the outcome. Another trick is to 
change one of the weights to 1000 to optimize for just that parameter. This is quicker than 
zeroing out the other weights. The weights are relative weights, so if you double all of the 
weights, the optimizer will converge on exactly the same answer, and the same merit value 
will be displayed. 
It is important to note that the tilt angle in the optimization is separate from the tilt 
amount in the main GemRay Options dialog. The tilt direction however is the same and is 
Documents you may be interested
Documents you may be interested