Hi Paul. On Fri, Sep 26, 2008 at 8:56 AM, paul taney <paultaney@xxxxxxxxx> wrote:> Why does he multiply the image by 256 and elsewhere divide image/256?He's expecting an image with values ranging 0..1. If the values youare providing are 0..255, you'll need to remove both of those.>>>>> 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)>> This will not necessarily help, because your vanderwalt() routine isstill producing an RGB image always. David -- Everything has reasons. Nothing has justification.Ĉio havas kialojn; Neniaĵo havas pravigeron._______________________________________________Gimp-developer mailing listGimp-developer@xxxxxxxxxxxxxxxxxxxxxxxxxxx://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer