Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
gimp-drawable-set-pixel giving unspecified error
#1
I generally use some version of GIMP 2.10 on many different distros of Linux, most often Debian-based such Ubuntu, Parrot, Neon, etc

For the most part, I've done my scripting in Scheme because it was the only scripting language I could get to register properly, the python scripts would never load no matter what troubleshooting steps I tried.  This is fine though as Scheme is fun and still powerful enough to do just about whatever I need with the proper ideas.

Anyhow, the point being that I came across a hurdle with (gimp-drawable-set-pixel), which is the only function I know where you can explicitly define pixels values to place into an image.  And with the following script :

Code:
(define (test-set-pixel)
 (let* (
         ;; Create a new image and drawable
         (frame (car (gimp-image-new 10 10 RGB)))
         (drawframe (car (gimp-layer-new frame 10 10 RGB "Test Layer" 100 NORMAL-MODE)))
       )
   ;; Add the new layer to the image
   (gimp-image-insert-layer frame drawframe 0 -1)
   (gimp-drawable-fill drawframe TRANSPARENT-FILL)

   ;; Test setting a single pixel
   (let* (
          (x 0)
          (y 0)
          (new-pixel (vector 255 0 0 255)) ;; Red with full opacity
        )
     (gimp-message (string-append "Setting pixel at (" (number->string x) ", " (number->string y) ")"))
     (gimp-drawable-set-pixel drawframe x y 4 new-pixel))

   ;; Save the image for inspection
   (file-png-save 0 frame drawframe "test.png" "test.png" 1 9 1 1 1 1 1)
   (gimp-message "Test image saved.")
   (gimp-image-delete frame)
 )
)


I get the cryptic error message --  "Error: Procedure execution of gimp-drawable-set-pixel failed".  As a side note, I don't use python because it's been difficult for me to get Gimp to register python scripts in Linux, so seeing as how I have quite a few Scheme scripts started I'd like to try and resolve this fundamental problem of being able to place a pixel into an image, are there other functions that could give a similar functionality?  I've considered sampling pixels with (gimp-drawable-get-pixel) and then creating a new layer with 1x1 pixels, and then applying a paint to the new layer to match the color of sampled picture, and then mixed down a layer group of 320 x 240 layers (for a 320x240 pixel image for example) and then calling that a 'set pixel" alternative, but that would be an extreme work around.  Is there anything obvious that I'm overlooking?
Reply


Messages In This Thread
gimp-drawable-set-pixel giving unspecified error - by rgbellotti - 9 hours ago

Forum Jump: