From d7d7e63e013ca4ea46a5a15d0b39cf571d43a0bb Mon Sep 17 00:00:00 2001 From: Phus Lu Date: Fri, 5 May 2017 16:53:41 +0800 Subject: [PATCH] Add new_mode function Currently `new` function creates a grayscale image in stack, it will break `paste` a colorful(i.e. `RGBA`) image. Repro Steps ``` pildriver.py save new.png paste open test1.png 0 200 paste open test2.png 0 0 new 400 400 0 ``` We will get a **grayscale** new.png rather than a **RGBA** one. This commit is to fix this by adding a new `new_mode` function. ``` pildriver.py save new.png paste open test1.png 0 200 paste open test2.png 0 0 new2 RGBA 400 400 0 ``` --- Scripts/pildriver.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Scripts/pildriver.py b/Scripts/pildriver.py index cc425ad08..b2213ea6a 100644 --- a/Scripts/pildriver.py +++ b/Scripts/pildriver.py @@ -122,6 +122,17 @@ class PILDriver(object): color = int(self.do_pop()) self.push(Image.new("L", (xsize, ysize), color)) + def do_new2(self): + """usage: new2 : + + Create and push a image of given mode, size and color. + """ + mode = int(self.do_pop()) + xsize = int(self.do_pop()) + ysize = int(self.do_pop()) + color = int(self.do_pop()) + self.push(Image.new(mode, (xsize, ysize), color)) + def do_open(self): """usage: open