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