Jeanne:

At 8:03 AM -0700 7/25/2006, Rob Cozens wrote:
* Rev. Dictionary: "Revolution supports GIF, JPEG, PNG, PICT, BMP, PBM/PGM/PPM, and XBM/XPM/XWD formats, as well as its own internal format". My presumption is (untested) the "internal format", designated as "rle" in the image's paintCompression property, is the format used for imageData [4 bytes per pixel: null, red, green, blue].

No. It's run-length-encoded. Just as well, since the text property is what's stored on disk, and a 32-bit image with no compression whatever would take up a ton of room. Take a look at the length of the text versus the length of the imageData of a typical image object.

The text property is stored on disk? Isn't that only if the image is referenced instead of imported?


(Why would you assume that these are the same?)

Here's my thinking:

1.  I create a string of characters, 4 bytes per pixel  in imageData format .

2.  I set the imageData of an image to my string

3. In what format is the image's text, if not rle? GIF, JPEG, PNG, PICT, BMP, PBM/PGM/PPM, or XBM/XPM/XWD? Perhaps rle compresses the data to 3 bytes per pixel by stripping the nulls?

4. What happens if I "put" my imageData-formatted string into an image? Will the image not display correctly? Does it throw an error? Is the string reformatted before being placed in the text property?


* Rev Dictionary: "Because most picture formats include compression, the content of an image is normally smaller than its imageData property." My presumption is (untested) that if an image has never been resized since created in rle format, the image's text & imageData properties will be identical. [ I would also note the Dictionary is likely to be incorrect if the image is displayed at less than full size.]

This is never the case. There is no situation in which the text and imageData properties are the same; they're in completely different formats.

Once again, question 4 above. Other than saving and reusing the text of a rle-formatted image, how would one put an rle-formatted string into an image?


* Rev Dictionary: "To manipulate each pixel (for example, to brighten the image or remove the red channel), to examine the actual screen appearance of the image, or to work with the picture data in a format-independent way, use the imageData property." I think this should read "use the rle format" instead of "use the imageData property." [Though one could reference the imageData property to convert images in other formats to rle.]

No. It is possible to manipulate data by starting with the formatted text property of the image, of course - but the easiest way to do this is to write a routine that expands that text property so that each channel of each pixel is represented by a separate byte, and place that data in a variable to be worked with. Since what I've just described is the imageData property of the image, it seems considerably easier to use that instead of spending time reconverting the text picture data into that format.

If I had meant "use the text property of an image in RLE format" instead of "use the imageData property", that's what I would have written.

Perhaps we are approaching "use" from different viewpoints; but then again it may all boil down to my misconception of what happens if I set the text of an image to an imageData-formatted string. If you use "use" in the sense of "take the imageData as a starting point for your modifications", you'll get no argument from me. And if setting the text of an image to an imageData-formatted string throws an error, I'm flat out wrong. But if it doesn't throw an error, what does happen?


--

Rob Cozens
CCW, Serendipity Software Company

"And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee."

from "The Triple Foole" by John Donne (1572-1631)
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to