[EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

> I'm using printomatic full, but I need to get the stage to
> print, but  well, as all the text, etc, are flash members...
> 
> Printing the stage prints out at 72dpi.
...
> Is there perhaps a way I can capture a large image of the
> stage in imaging lingo and scale down to the print rez to
> get a better print of the text?

Hi grimmwerks,

You can probably get a decent printed image at 144 dpi.  This means using
four times as much memory.  Printomatic sends the entire print job to the
printer in one go, so the memory issue is important.  (Most other
applications stream data to the printer, so printing starts faster and the
memory overhead is lower).

You'll need to scale up both the text member size and the font size, and
you'll need to scale up the defaultRect of any Flash members.  When you
scale up the text, the softwrapping of the content is likely to alter.

Here's a simple handler that makes a number of assumptions (simple inks, no
skew or rotation, text member .boxType, no overlapping sprites, ...), so you
will have to adapt it to suit your project.

Cheers,

James

----------------------------------------------------------------------------

on getScaledStageImage()
  tRect   = (the stage).rect
  tWidth  = tRect.width
  tHeight = tRect.height
  tRect   = rect(0, 0, tWidth, tHeight)
  
  tImage  = image(tWidth * 2, tHeight * 2, 32)
  tImage.copyPixels((the stage).image, tImage.rect, tRect)
  
  tCount = the lastChannel
  repeat with i = 1 to tCount
    tSprite = sprite(i)
    tMember = tSprite.member
    tPixel  = image(1, 1, 32)

    case tMember.type of
      #flash:
        tSaveRect           = tMember.defaultRect
        -- Set defaultRect to get twice the stage resolution
        tRect               = tSprite.rect * 2
        tMemberRect         = tRect.offset(-tRect.left, -tRect.top)
        tMember.defaultRect = tMemberRect
        
       -- Assume transparent ink with nothing sprites: add stage color
        tPixel.setPixel(0, 0, (the stage).bgcolor)
        tImage.copyPixels(tPixel, tRect, rect(0, 0, 1, 1))

        tImage.copyPixels(tMember.image, tRect, tMemberRect)
        
        -- Revert to previous defaultRect
        tMember.defaultRect = tSaveRect
        
      #text:
        tRect       = tSprite.rect * 2
        tWidth      = tRect.width
        tHeight     = tRect.height
        tMemberRect = rect(0, 0, tWidth, tHeight)
        
        -- Create a double sized member (assumes #adjust .boxType)
        tTemp       = member(tMember.duplicate()) -- assumes castLib 1
        tTemp.width = tWidth
        
        -- Double the size of the font
        tTemp.fontSize = tMember.fontSize * 2
        
        -- Assume copy ink and add bgColor
        tPixel.setPixel(0, 0, tMember.bgColor)
        tImage.copyPixels(tPixel, tRect, rect(0, 0, 1, 1))
        
        tImage.copyPixels(tTemp.image, tRect, tMemberRect)
        
        -- Destroy the temporary member
        tTemp.erase()
        
        -- add other types here
    end case
  end repeat
  
  return tImage
end getScaledStageImage

[To remove yourself from this list, or to change to digest mode, go to 
http://www.penworks.com/lingo-l.cgi  To post messages to the list, email 
[EMAIL PROTECTED]  (Problems, email [EMAIL PROTECTED]). Lingo-L is for 
learning and helping with programming Lingo.  Thanks!]

Reply via email to