Molunerfinn / PicGo

:rocket:A simple & beautiful tool for pictures uploading built by vue-cli-electron-builder
https://molunerfinn.com/PicGo/
MIT License
24.13k stars 2.24k forks source link

【已解决】macOS剪贴板图片上传bug #199

Closed Xiaohantx closed 5 years ago

Xiaohantx commented 5 years ago

问题类型

Bug Report

PicGo的相关信息

2.0.5 mac

问题重现

WX20190312-142023@2x.png 2.0.4版本mac仍然不能通过快捷键或者从剪切板上传按钮上传剪切板的图片,下载了2.0.5版本后,运行出现了该错误提示无法打开


Molunerfinn commented 5 years ago

稍等一下我以为你是windows版本的PicGo

gnehcgnaw commented 5 years ago

同样这个问题我也出现了。 @Molunerfinn

Molunerfinn commented 5 years ago

macOS版本的不必更新2.0.5,你降级回2.0.4。如果2.0.4版本的macOS不支持剪贴板上传,可以试试这个issue的办法: image

Molunerfinn commented 5 years ago

目前我已经撤下2.0.5的dmg版本地址。windows是正常的

Xiaohantx commented 5 years ago

我这边修改了系统语言为英文后仍然无法上传快捷键和按钮都不可以。。点了没反应

Molunerfinn commented 5 years ago

改为英文之后你重启一下picgo再试试呢

Xiaohantx commented 5 years ago

WX20190312-144114@2x.png

不行,这里能看见剪切板的图片,但是鼠标放上去这里是有个禁止的箭头加禁止的圆

Xiaohantx commented 5 years ago

手动选择文件是好的。。。剪切板方式都行不通好像

gnehcgnaw commented 5 years ago

Mac系统升级到Macos Mojave版本,系统对模拟按键增加了限制,我不太清除你这个粘贴板是如何实现的(我本人不是搞mac开发的),你是不是使用了模拟组合键的方式呢? @Molunerfinn

Molunerfinn commented 5 years ago

@Xiaohantx 我这边2.0.4无法复现,可能需要你提供更详细的信息来定位问题:

  1. 然后先把你的PicGo退出了。

  2. 打开你的终端,然后输入:

cd /Applications/PicGo.app/Contents/MacOS
  1. 输入:
./PicGo --debug

然后你复制一张图片,然后用快捷键上传也好,主界面点击上传也好,看看终端里报了什么错?

image

Molunerfinn commented 5 years ago

@gnehcgnaw 跟那个关系不大,因为除了快捷键上传之外,还可以通过点击按钮的方式来快捷上传图片。

Xiaohantx commented 5 years ago

WX20190312-145327@2x.png

Xiaohantx commented 5 years ago

以下报错信息

2019-03-12 14:52:49.564 PicGo[1435:37872] *** WARNING: Textured window <AtomNSWindow: 0x7fdd8e692510> is getting an implicitly transparent titlebar. This will break when linking against newer SDKs. Use NSWindow's -titlebarAppearsTransparent=YES instead.
[PicGo ERROR]: *** Error creating a JP2 color space: falling back to sRGB

(node:1435) UnhandledPromiseRejectionWarning: [object Uint8Array]
(node:1435) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1435) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Molunerfinn commented 5 years ago

OK,有报错信息就好定位问题了

Molunerfinn commented 5 years ago

你复制的图片不管什么格式都会有这个问题吗

Xiaohantx commented 5 years ago

主要是通过截图来剪切板上传,复制图片才试了下也都不行

Molunerfinn commented 5 years ago

https://github.com/Molunerfinn/PicGo/blob/dev/static/mac.applescript 这个文件是PicGo获取剪贴板图片的脚本,你可以下载到本地:

wget https://raw.githubusercontent.com/Molunerfinn/PicGo/dev/static/mac.applescript

然后你复制一张图片文件,在终端运行一下这个脚本:

osascript mac.applescript test

如图我的输出是这样的: image

我想看看你的输出是啥

Xiaohantx commented 5 years ago

我的不是这样

yinhandeMacBook-Pro:Docker xiaohantx$ osascript mac.applescript test
*** Error creating a JP2 color space: falling back to sRGB
*** Error creating a JP2 color space: falling back to sRGB
Molunerfinn commented 5 years ago

如果你复制了一张图片文件之后,再输入这串代码:

osascript -e "clipboard info"

image

看看输出是啥。很抱歉让你帮忙一起排查错误花费了不少时间!

Xiaohantx commented 5 years ago

没关系,日常划水中,软件很好用 以下为输出结果

*** Error creating a JP2 color space: falling back to sRGB
«class PNGf», 63581, «class 8BPS», 265044, GIF picture, 24551, «class jp2 », 68030, JPEG picture, 50697, TIFF picture, 1355634, «class BMP », 1354790, «class TPIC», 123721
Xiaohantx commented 5 years ago
*** Error creating a JP2 color space: falling back to sRGB
TIFF picture, 1090534, «class HTML», 147, «class 8BPS», 225944, GIF picture, 35216, «class jp2 », 72886, JPEG picture, 56264, «class PNGf», 104940, «class BMP », 1090046, «class TPIC», 226861
Molunerfinn commented 5 years ago

很奇怪,如果是图片文件被复制到剪贴板的话,按理说应该可以获取到«class furl»从而获取到你的图片文件本身的路径。我现在有个猜想,可能是因为你的command line tool在升级系统版本后没有升级导致的?

试试看:

xcode-select --install

看看是否需要升级

Xiaohantx commented 5 years ago
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Molunerfinn commented 5 years ago

那么你打开Xcode呢,有没有提示要升级?或者你看看你的Xcode是否需要升级?

Xiaohantx commented 5 years ago

系统的软件更新并没有任何需要更新的。。。

angnuoli commented 5 years ago

如果输入

osascript mac.applescript test.png

则会报 error

这个 applescript 的逻辑我看了,应该是把图片复制到 Library Support 中,返回路径,可能是 POSIX PATH 没有返回绝对路径?


@Molunerfinn 我的输出是 "/test" 没有 User 之类的

Xiaohantx commented 5 years ago

我没有xcode鸭....我不用xcode开发我只有vscode...

Molunerfinn commented 5 years ago

@angnuoli 你的picgo也不能复制图片上传么

Molunerfinn commented 5 years ago

@Xiaohantx 那就很奇怪了...使用系统自带的clipboard命令你都会出现报错的话就很神奇了

Xiaohantx commented 5 years ago

看了下 Error creating a JP2 color space: falling back to sRGB 然后猜测了下刚才尝试了下,找到了这句话问题所在.... 设置里显示器-颜色-色彩描述文件的问题我切换到普通rgb就没问题了,我之前用的display p3

Xiaohantx commented 5 years ago

这是mac问题吗,不是太懂mac开发,但是正常图片复制粘贴貌似也没问题呀。。

Molunerfinn commented 5 years ago

是呀就很奇怪...其实我也只是前端开发,并不是特别了解mac开发,脚本都是现学的。

如果你的问题解决了,欢迎把具体步骤说一下吧,造福后人~

Xiaohantx commented 5 years ago

就是更改了显示的描述文件,就可以了,别的都不用动.. 其他描述文件没尝试,普通rgb下没问题,display p3下无法使用剪切板上传

Molunerfinn commented 5 years ago

好的,非常感谢!

Alalalalaki commented 5 years ago

同样问题。改成普通rgb可以。

Molunerfinn commented 5 years ago

PicGo下个版本将会更新剪贴板上传图片的错误处理,使得剪贴板上传图片将不再受 屏幕色彩描述文件 的影响。

Billin9 commented 5 years ago

前两天系统更新了之后又出现这个问题了.

相关环境

问题现象

剪切板上传失败.

日志

2019-05-27 17:28:43 [PicGo ERROR] *** Error creating a JP2 color space: falling back to sRGB

------Error Stack Begin------ undefined -------Error Stack End-------

Molunerfinn commented 5 years ago

@Billin9 先根据本issue里给出的解决办法改描述文件看看。下个版本会彻底修复这个问题将不用再改描述文件。

:octocat: From gitme iOS

Billin9 commented 5 years ago

@Molunerfinn 好的, 描述文件改成 sRGB 后可以了. 不过我没有更新系统之前用的好好的, 也不用改色彩描述文件, 奇怪. 谢了, 这个软件很好用!

najunuoyan commented 5 years ago

同样遇到这个问题,期待解决

liutf commented 5 years ago

就是更改了显示的描述文件,就可以了,别的都不用动.. 其他描述文件没尝试,普通rgb下没问题,display p3下无法使用剪切板上传

遇到同样问题。果然显示切换到普通rgb就可以了。眼泪掉下来。

zionfuo commented 5 years ago

mac打不开主窗口

Molunerfinn commented 5 years ago

@zionfuo image 没有鼠标的话用双指点按PicGo顶部图标。

zionfuo commented 5 years ago

@zionfuo image 没有鼠标的话用双指点按PicGo顶部图标。

谢谢大佬

theo1201 commented 5 years ago

mac中无法上传 查看debug如下: picgo nhandledPromiseRejectionWarning: StatusCodeError: 401 - "{\"error\":\" 不知道大佬知不知道是什么问题

theo1201 commented 5 years ago

ps完整的debug内容: UnhandledPromiseRejectionWarning: StatusCodeError: 401 - "{\"error\":\"bad auth\"}" at new StatusCodeError (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/request-promise-core/lib/errors.js:32:15) at Request.plumbing.callback (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/request-promise-core/lib/plumbing.js:104:33) at Request.RP$callback [as _callback] (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/request-promise-core/lib/plumbing.js:46:31) at Request.self.callback (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/request/request.js:185:22) at Request.emit (events.js:182:13) at Request. (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/request/request.js:1161:10) at Request.emit (events.js:182:13) at IncomingMessage. (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/request/request.js:1083:12) at Object.onceWrapper (events.js:273:13) at IncomingMessage.emit (events.js:187:15) (node:3589) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 5)

Molunerfinn commented 5 years ago

@theo1201 401是认证失败,说明你配置不对。

SHERlocked93 commented 4 years ago

试了下更改 屏幕色彩描述文件 然后上传一次成功了,之后又失败了,版本 2.1.2,macOS 版本 10.15.1 😫

反馈一下,我把图床从 smms 改为 Github 图床之后可以从剪切板上传了,不知道是不是 smms 的问题。

Sailfishc commented 4 years ago

Mac系统,PicGo 2.1.2,在连接显示器的情况下快捷键上传失败,不接显示器可以上传,手动上传几种情况都可以。 image

Molunerfinn commented 4 years ago

@Sailfishc 连接显示器后对应显示器的色彩描述文件也修改一下...