--- On Thu, 9/25/08, David Gowers <[EMAIL PROTECTED]> wrote:

> From: David Gowers <[EMAIL PROTECTED]>

> Hi Paul,
> 
> On Fri, Sep 26, 2008 at 2:19 AM, paul taney
> <[EMAIL PROTECTED]> wrote:
> >
> >
> >>
> >> When it doesn't register, is there any console
> output
> >> from GIMP?
> >>
> >> Chris
> >
> >
> > I"ve got things working now and use numpy to
> convert bluelines to SVG lines or a python tuple that gets
> written out.
> >
> > It could be of general interest for vectorizing if it
> treated a selection.
> >
> > But I am converting scanned stripcharts, and the ink
> is blue...  One y per x is all I need, and there would be a
> slick way to do that with numpy; I"m just using a
> stride for line thinning.
> >
> >
> > The part I dont understand is this; I pass my bluemask
> to (Fremlin"s) write_out(drawable, image) as the image,
> it fails the assertion and does not post...
> >
> >    numpy.array((image*256).round(0),"B")

Why does he multiply the image by 256 and elsewhere divide image/256?

> 
> Which assertion fails?

Line 207:  assert(byte_image.size == width * height * bpp)
fails, right before the blit.

> >
> >
> > def write_out(drawable, image):
> >    """by John Fremlin"""
> >    byte_image =
> numpy.array((image*256).round(0),"B")  # B is a
> ubyte
> >    width = drawable.width
> >    height = drawable.height
> >    bpp = drawable.bpp
> >    sys.stderr.write("write_out::drawable.width=%i
> drawable.height=%i drawable.bpp=%i\n" % (width,
> height, bpp))
> >
> >    pr = drawable.get_pixel_rgn(0, 0, width, height,
> True)
> >    assert(byte_image.size == width * height * bpp)
> >    pr[:,:] = byte_image.tostring()  # blit
> 
> You are passing an RGB array to this function. Are you
> certain that
> your destination drawable does not have an alpha channel
> (thus requiring you to pass an RGBA array)?
> 

I have added a test for that, as best I know how;  but it 
still fails at 207.

    if drawable.has_alpha:
        img = gimp.Image(width, height, RGBA_IMAGE)
        new_layer = gimp.Layer(img, new_layer_name, width, height, 
                               RGBA_IMAGE, opacity, NORMAL_MODE)
    else:
        img = gimp.Image(width, height, RGB_IMAGE)
        new_layer = gimp.Layer(img, new_layer_name, width, height, 
                               RGB_IMAGE, opacity, NORMAL_MODE)

Attachment: stroke_to_vector.py
Description: Binary data

_______________________________________________
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer

Reply via email to