Saving a field containing text and images

Stephen Barncard stephenREVOLUTION at
Sat Aug 25 11:59:12 EDT 2007

It's possible but complicated. I don't know if you need a document 
readable by something else, but if it's all to be saved and loaded by 
your app, it can be done.

I've experimented with with saving all fields and images in a group 
as text descriptions.

to keep the size down, all images are referenced rather than actually 
hold image data.

1. I get all the properties of the object into an array, and fix the 
returns that are in certain properties (like colors) to some other 
2. Then I flatten the array to a list with combine.
3. Base64Encode the list
4. Replace the returns in the Base64 encoded list with linefeeds
5. this results in a single line
6  Add  a key identifying what the object is (field, image, etc) & 
tab and then the data
7. Build the list with other objects, one per line
8. save as a single text file. This will be very small.

By saving all the properties, you are also saving the HTMLtext and 
rect information.
If the images have been resized, you also may have to save a line of 
actual rects and resize upon expanding.

On expanding, all the fields and images are recreated and the saved 
properties expanded (reverse of above) and applied to the created 
objects, and they will be arranged exactly as you saved them. The 
Base64 encoded text does not have to have the returns restored; it 
reads sections by number of characters, not delimiter.

this former theory has been tested and works. It's also really fast 
with text fields, images take a little longer to 'decode', but 
totally acceptable for say, a labeler or something.


>Thanks for your quick answer, as usual.
>I've made some testing by saving the field's htmlText , but after 
>that you need to export all the images and it can lead to the 
>creation of a huge number of files.
>I'd prefered saving all in a rtf, but here I don't know how to do 
>it. Do you you if something like that is possible?


stephen barncard
s a n  f r a n c i s c o
- - -  - - - - - - - - -

More information about the use-livecode mailing list