One method to convert Text to SVG-File.

The problem can exist, that we want to import text into an application, which nevertheless expects a graphics file, but that the application is strong enough to accept SVG-Files as an available graphics-file format.

In studying this problem, I came to a discovery which was new to me about what SVG-Files are. In fact, SVG is a markup-language similar to HTML or to XML, so that by default, SVG-Files are actually text-files ! This also means, that if our Web-authoring software offers to embed SVG, this is not done with an <embed> -tag, as if the file was to be treated as some sort of image, but rather, using an actual <svg> -tag.

The main difference in SVG-Files would seem to be, that they prepend an <xml> -tag, making the file a self-contained document.

What this also means, is that text can be converted into SVG-Files most-efficiently, using a text-editor, where we’d first set up a template, then copy that to a new file-name every time we need a working SVG-File, and then just edit the text…

The following is a type of template which has worked for me, in experiments I carried out:

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!--
  Instructions for Windows users:
  This file will probably need to be renamed
  From: Template.svg.txt (where .txt was hidden)
  To:   Template.svg
  
  And then placed in a folder with other images.
  A console window would need to be navigated to
  the same directory...

  Linux Usage:
  
  cp Template.svg TextFile.svg
  edit text/*:TextFile.svg
  
  Windows Usage:
  
  copy Template.svg TextFile.svg (Hypothetical Name)
  Notepad TextFile.svg
  
  For either Linux or Windows,
  assuming Inkscape is installed and in the PATH:
  
  inkscape -z -e TextFile.svg.png TextFile.svg

  OR
  
  inkscape -z -T -l TextFile-G.svg TextFile.svg

  -->

<svg height="90" width="200">
  <g>
    <text x="10" y="15" style="fill:black;"
        font-size="12" font-family="Liberation">Several lines:
      <tspan x="10" dy="15">Second line.</tspan>
      <tspan x="10" dy="15">Third line.</tspan>
    </text>
  </g>
</svg>

 

One assumption made in creating this template was, that Inkscape is installed in such a way, as to recognize the stated font-family. This parameter can just be omitted, in which case Inkscape would use whatever its default font is. But, to state such information provides consistent, predictable results. In contrast, I needed to set the font-size. Inkscape could default to an unexpected font-size, which in turn would lead to garbled output, in the resulting PNG-File. And, the default font-size Inkscape uses, appears to be the one last-set when the GUI was used.

(Edit 03/15/2018 :

By now, this template only serves as a working basis, for a shell-script I have written, which allows me to create such text-images with a single command. I have posted the script to my blog. But, if readers are nevertheless interested in understanding the workings of SVG-Files, I’m always leaving my existing ruminations as written blow… )

Continue reading One method to convert Text to SVG-File.

Why some people might still want to put Polarizers on their Cameras

One concept which exists in digital photography, is that we can remove any need for special filters, just by using software to modify or rearrange the colors within a photo or video we have shot. And one problem with this claim is, the fact that software can only change the contents of an image, based on information already stored in its pixels. Hence, the color-vectors of resulting pixels, need to be derived from those of captured pixels.

Thus, if we have taken a photo of a gray, hazy day scene, and if we wanted the sky to look more blue, and if we wanted features in the scene to look more yellow, then we could be creative in the coding of our software, so that it performs a per-channel gamma-correction, raising the blue channel to an exponent greater than one, while raising the red and green channels to an exponent less than one. And we might find that regions within the image which were already more blue, will seem blue more-strongly, while regions which did not, will end up looking more yellow, as if sunlit.

(I suppose that while we are at it, we would also want to normalize each color-vector first, and store its original luminance in a separate register, so that our effect only influences coloration in ways not dependent on luminance, and so that the original luminance can be restored to the pixel afterward.

At that stage of the game, a linear correction could also be computed, with the intent that purely gray pixels should remain gray. )

(Edit 02/24/2018 :

Actually, such an effect plug-in might just as easily keep the other channels, Red and Green in this case, as they are. )

The problem remains, that the entire image could have colorsĀ  washed out, so that the sky looks gray, and the subject does as well. So then, our software would have nothing on which to base its differentiation.

But light that occurs naturally in scenes tends to be polarized. Hence, light that came from the sky will have an angle of plane-polarization to it, while light which has been scattered by the scene will have more-randomized polarization. Hence, if we have a DSLR camera, we can mount polarization filters which tend to absorb blue light more, if it is polarized along one plane, while absorbing yellow light more, which is polarized at right-angles to the same plane.

The idea is that the filter could be mounted on our camera-lens, in whatever position gives the sky a blue appearance, and we can hope that the entire landscape-photo also looks as if sunlit.

(Edit 02/24/2018 :

After actually giving it some thought, I’d suggest that light which comes from the sky is horizontally-polarized, and that the use of this filter will make both the sky, and horizontally-facing bodies of water look more blue, which both would, on a sunny day. In comparison, the rest of the scene would end up looking ‘more yellow’, suggesting sunlit appearance. )

Then, the actual pixels of the camera will have captured information in a way influenced by polarization, which they would normally not do, any more than Human Eyes would normally do so.

(Updated 02/23/2018 : )

Continue reading Why some people might still want to put Polarizers on their Cameras