jcsalterego / pngpaste

Paste PNG into files, much like pbpaste does for text.
Other
458 stars 32 forks source link

The color looks like not well when I used pngpaste in Mac Mojave #16

Closed hjw6160602 closed 1 year ago

hjw6160602 commented 5 years ago

The original picture is:

When I used pngpaste

maglub commented 5 years ago

I ran into the same issue, but not when I pngpaste directly. Also, only when I use .png. JPEG works fine.

How to reproduce

Faulty image:

image

Ok image:

image

Almost ok image:

image

NightMachinery commented 3 years ago

I have this problem, too. The pasted image looks greyed out.

NightMachinery commented 3 years ago

This happens very badly for fullscreen screenshots. Any ideas?

NightMachinery commented 3 years ago

Using these instead works fine:

function pngpaste() {
    local name="${1}"
    ensure-args name @MRET
    ensure isDarwin @MRET

    [[ "$name" =~ '\.png$' ]] || name+=.png

    osascript -e "tell application \"System Events\" to ¬
                  write (the clipboard as «class PNGf») to ¬
                          (make new file at folder \"$(pwd)\" with properties ¬
                                  {name:\"${name}\"})"
}
function jpgpaste() {
    local name="${1}"
    ensure-args name @MRET
    ensure isDarwin @MRET

    [[ "$name" =~ '\.jpg$' ]] || name+=.jpg

    osascript -e "tell application \"System Events\" to ¬
                  write (the clipboard as JPEG picture) to ¬
                          (make new file at folder \"$(pwd)\" with properties ¬
                                  {name:\"${name}\"})"
}

Usage:

pngpaste a1.png
martin-braun commented 2 years ago

Yes, the color is wrong. I need this to work for png and jpg and I need the base64 output method to pipe it back to the clipboard as base64, so I cannot use @NightMachinary's solution.

jcsalterego commented 1 year ago

(Years later) Is this still an issue? :)

martin-braun commented 1 year ago

@jcsalterego Yes it is. Could you please look into it? I would really appreciate it. :)

jcsalterego commented 1 year ago

@martin-braun are you still on Mojave?

jcsalterego commented 1 year ago

still/also

martin-braun commented 1 year ago

@jcsalterego No, I'm on Monterey at the moment. The image isn't washed out anymore, but the colors are still not correct. For instance, I copied this image:

I then run pngpaste test.png and this is the result:

test

Notice how the contrast is too strong now?

Since you never touched the library and it turned around itself with the update of MacOS, I assume the original color issue was a bug in Apple's software, but is the wrong contrast at this time also Apple's fault?

jcsalterego commented 1 year ago

Interesting! Maybe there's a setting in the API that I could tweak so it doesn't mess with the contrast. Thanks for the test cases.

jcsalterego commented 1 year ago

@martin-braun I'm not seeing the same thing. Can you tell me how you copied the source file, and which pngpaste command you used for the output?

martin-braun commented 1 year ago

@jcsalterego I copied the image via right click > copy image in Brave and I pasted with pngpaste test.png which I installed with brew install pngpaste.

Screen Shot 2023-02-10 at 3 38 46 PM

Screen Shot 2023-02-10 at 3 39 17 PM

macOS 12.6 (21G115)

Output:

test

jcsalterego commented 1 year ago

@martin-braun Got it - and can you reproduce the issue in Safari? I want to rule out the source copy being the problem.

martin-braun commented 1 year ago

@jcsalterego You nailed it. On Safari the issue is not reproducible. I then tested to copy the image from Brave and paste it into another program, like Krita or Preview and the issue appears there as well, so it gets copied with the wrong contrast, thus it has to be a bug in Brave.

pngpaste works fine now, so this issue can be closed.

jcsalterego commented 1 year ago

@martin-braun Oh good, glad we tracked down the root issue.

rohitkapur commented 2 months ago

Hey @jcsalterego, I think this issue actually still exists. It seems to have to do with the Gamma metadata:

diff exif_orig.txt exif_pngpaste.txt
2c2
< File Name                       : orig.png
---
> File Name                       : pngpaste.png
5,7c5,7
< File Modification Date/Time     : 2024:05:08 09:56:11-04:00
< File Access Date/Time           : 2024:05:08 09:57:36-04:00
< File Inode Change Date/Time     : 2024:05:08 09:57:34-04:00
---
> File Modification Date/Time     : 2024:05:08 09:57:41-04:00
> File Access Date/Time           : 2024:05:08 09:57:42-04:00
> File Inode Change Date/Time     : 2024:05:08 09:57:41-04:00
19c19
< SRGB Rendering                  : Perceptual
---
> Gamma                           : 0.4545
20a21
> Color Space                     : sRGB

In certain viewers (like Windows Photo Viewer), the Gamma metadata is parsed and the image will appear faded.