How to Turn a Word Into a Graphic Object?

Richard Gaskin ambassador at fourthworld.com
Sat Mar 28 10:38:04 EDT 2015


Brahmanathaswami wrote:

> Also:  I don't see how this (in the docs on snapshot) can apply for
> snapshots of words in a field as these are not "objects" perse:
>
> " You can take a snapshot of an object regardless of its visibility
> or open status - in particular, snapshots can be taken of objects
> that are not on the current card or in stacks that are not open.
>
> an attempt like this results in "empty rectangle"
>
> on MouseUp
>     repeat with x = 1 to the number of words of fld _Quote of cd 2
>        put the formattedRect of word x of fld _Quote of cd 2 into
> tNextWordSnapshot
>        import snapshot from rect tNextWordSnapshot of cd 2
>       set the name of the last image to ("word_"&x)
>    end repeat
> end MouseUp
>
> Also if you turn the vis of the field off... you get snaps shots of
> whatever is visible on the card, not the words in the field...

That script uses the older "from rect" option, which obtains the image 
area from the final composite screen buffer.  It's truly WYSIWYG: if it 
ain't visible, it ain't gonna be seen in the resulting the image.

The newer "from <object>" option is much smarter and more flexible, 
allowing you to capture any object (control, group, or even an entire 
card) whether it's open or not.

It does this by rendering the object into its own image buffer, and 
returns the resulting image data to the newly created image object.

And because it renders into its own buffer, the "from <object>" option 
also maintains blending/transparency, so the resulting object will 
retain empty areas as empty, in many cases making it much more useful to 
using the resulting image as part of other layouts.

Jim's script posted yesterday at 
<http://lists.runrev.com/pipermail/use-livecode/2015-March/213144.html> 
creates a new field object and obtains the snapshot using the newer 
"from <object>" option, which will not only handle what you need but 
also preserve empty space as transparent.

The only modification I would suggest for Jim's script is to use 
htmlText rather than rtfText.

RtfText will handle only the subset of LiveCode text attributes that are 
also supported by the RTF spec, which is good for most things but may 
miss a few elements unique to LiveCode (see the note in the Dictionary 
entry for rtfText).

HtmlText is designed to provide complete fidelity of all field contents 
and attributes in a plain-text format, making it the go-to solution for 
moving field contents, while RtfText is ideally suited for export for 
use in Word processors and the like.


Extra bonus points: if you ever need to create a thumbnail view of an 
object, see the new "at" options for specifying the width and height of 
the resulting snapshot.  MUCH faster than the scripted solutions we used 
to use, and very convenient.


> If I'm write.. then perhaps we need to update the docs...(Richard/Dan...
> is the framework for use contributions to the documentation in MarkDown
> ready yet?)

I think this entry for the Dictionary may be fine - try the "from 
<object>" option and see how it goes.  If you do find errors there 
please file a bug report and we'll catch them.

The Community Documentation Team is growing rapidly (thanks to all those 
who've written offering to help), and once Ben and I work out some 
scheduling challenges we've had we'll put together a work plan to get 
that started.


And as long as this is in your sigline:
> Kauai's Hindu Monastery
> www.HimalayanAcademy.com

If any of you are visiting Kauai you really should reserve time in your 
schedule to visit the monastery.  It's a beautiful place, breathtaking 
really, and the people who live and work there even better.  When I was 
there they had public tours scheduled each Friday; check their current 
schedule, and go.  You will leave with a deep admiration for the 
uncommonly wonderful work environment Brahmanathaswami gets to enjoy 
every day. :)

-- 
  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  ____________________________________________________________________
  Ambassador at FourthWorld.com                http://www.FourthWorld.com




More information about the use-livecode mailing list