V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  volvo007  ›  全部回复第 22 页 / 共 49 页
回复总数  961
1 ... 18  19  20  21  22  23  24  25  26  27 ... 49  
2022-05-23 20:59:36 +08:00
回复了 145431 创建的主题 Windows win11 色彩管理巨大 bug
@145431 不是大佬哈哈, 就是整了个广色域显示器然后折腾. 对色彩有要求的话, 咋不用果子. 果子一直都是全链路色彩管理啊
2022-05-23 17:43:06 +08:00
回复了 145431 创建的主题 Windows win11 色彩管理巨大 bug
@145431 这两个问题我恰好都探索过, 试着回答一下

1. ps 里的星号, 可能同时在括号里和括号外. 出现在括号外的, 表示当前图片的色彩空间发生了变动 (或者其他变动).

括号里的星号, 由于 ps 默认采用 argb 空间, 而 jpeg 图片多是 srgb.
所以当 ps 载入这种图片的时候, 会看到提示, 说图片空间和工作空间不符, 问你怎么办. 这种情况, 一般选择图片转工作空间即可. 还有一种是工作空间转图片, 这种等于缩小了工作空间, 不推荐; 第三种是 “什么都不做” 当然更不可取了

不过如果你选择了 图片 转 工作空间, 相当于图片发生了变动, 这个时候星号就在外面

而括号里面, 则是告诉你图片的色彩空间和 ps 的不一样. 你可以选 “什么都不做” 这个选项, 应该就能看到星号落在括号里面. 当然, 这种情况下如果你对图片做修改, 比如把图片改成 photorgb 什么的, 就会看到括号里面和外面都有星号了

2. 不是印刷行业使用的, 应当选择 “可感知”. 我们当然知道目前的 rgb 体系, 实际上可以用一种空间函数来表示. 那么不同的色彩空间, 是可以创建一种映射关系做转换吧

但是, 如果我将 srgb 投射到 argb 里面, 有些东西是 srgb 没有的啊; 或者反过来, argb -> srgb 有些东西多了. 这些东西转换完之后都会丢失信息, 那么如何取舍丢失的部分, 就是这里的 应对方式

相对色度你大致可以理解为等比例缩放, 比如 argb 的红色分量物理上是从 0 - 1000, srgb 只有 0 - 800, 那么我就将 argb 当中的所有红色做线性缩放, 大家都缩小同一个比例 (实际上比这个肯定复杂, 我不太清楚, 但是大致原理应该是这样)

而 可感知 则是表示你的眼睛看到的颜色尽可能一致. 有一种情况不知道你注意过没有: 如果把两台色彩有明显差异的显示器放在你面前, 你能马上分辨出他们的区别, 而且看那个烂显示器越看越不顺眼. 但是如果只给你一台显示器, 而不告诉你它可能就是个 95% srgb 的样子货, 时间一长你可能也觉得这个烂显示器挺顺眼

也就是说人眼不能像机器一样分辨客观的光谱, 而参杂了很多大脑的额外加工. 所以我做色彩转换的时候, 我让大家都展现一致的颜色就可以了, 至于多出来的部分, 反正也没有那么多, 而且一台显示器看久了你也不知道那些额外的颜色到底有多艳丽, 丢了就丢了. 用上面的例子来比方, 如果 argb 0 - 1000, srgb 0 - 800, 那么 argb -> srgb 会变成 0 - 800, 800 - 1000 这个位置我都用 800 来代替. 大概是这么个思路
2022-05-23 14:36:05 +08:00
回复了 HarrisonLee 创建的主题 程序员 多少内存够用?
@pengtdyd 那就期待大佬的作品 😚
2022-05-23 14:33:15 +08:00
回复了 javaisthebest 创建的主题 职场话题 发个帖,关于去 Shopee 新加坡的问题
为了什么也不要为了爱情

我和 ex 就读一个不算太好的学校的研究生, 她早我一届毕业, 但是我在她离校前签了大厂

她说不想找个太远的地方, 让我迁就去她那里. 我想法设法跟 hr 磨过去了, 然后发现她找了个官二代把我踹了

当然我也不是没有问题, 比如那个时候特别直男, 对她确实不够上心. 加上家里也没什么家底, 出去玩都玩不了很好的东西. 后面工作好几年才慢慢好起来

但是回头看, 如果我早点留在签约的城市, 毕竟房价低, 那个时候这个公司收入在当地算很高了, 到今天肯定也是房车都有奔小康了

你可以看看其他的因素来决定, 但是一定不要为了爱情, 特别是对方这样断然拒绝的情况
2022-05-23 11:25:34 +08:00
回复了 111qqz 创建的主题 职场话题 裁员裁麻了
@chodomatte 这都裁了一波了, 应该能缓一阵子了啊
2022-05-23 11:06:30 +08:00
回复了 firhome 创建的主题 程序员 有没有懂电机的同学,请教个 diy 的问题。。。
@Shazoo 如果是国外的同学, 有车库放车库里哈哈
很多同学对压缩机的噪声没有概念, 也不知道一般的空压需要做油水分离和排水
2022-05-23 11:01:18 +08:00
回复了 wuwukai007 创建的主题 Python django 4.1 异步 ORM,异步视图类来了!
一开始 fastapi 用是 https://tortoise-orm.readthedocs.io/en/latest/examples/fastapi.html 这个 orm, 后面不知道为啥又换成 sqlalchemy 了
2022-05-23 10:57:05 +08:00
回复了 HarrisonLee 创建的主题 程序员 多少内存够用?
@pengtdyd 又抓住一个全干工程师 😂
2022-05-23 10:56:14 +08:00
回复了 HarrisonLee 创建的主题 程序员 多少内存够用?
asgard 32g 2666 单条, 俗称真香条
当年 499 四条拉满, 真香
2022-05-23 10:54:25 +08:00
回复了 145431 创建的主题 Windows win11 色彩管理巨大 bug
导出的文件带个 srgb 色彩 icc, 然后 honeyview 中挂载对应 icc 应该就可以

我用 xnview, 它里面有两个选项, 一个是挂载什么 icc 来解析图片, 另一个是如果没有 icc, 默认用什么 icc

如果 honeyview 默认是 srgb icc 的话, 看看 ps 那边设置对没有. 看你截图好像没啥问题, ps 名字里面也没有 * 标记. 偏好设置里设置的是 srgb + preceptual 吗?
2022-05-23 10:38:55 +08:00
回复了 firhome 创建的主题 程序员 有没有懂电机的同学,请教个 diy 的问题。。。
@Shazoo 一开始我觉得 op 的想法不行, 后来看到你这个还觉得挺靠谱. 用气动的确实可以
2022-05-22 20:45:31 +08:00
回复了 nrtEBH 创建的主题 Apple MacOS 支持 MST 问题以及雷电扩展坞问题
@zhouweiluan anker 有一款和你这个几乎一模一样…… 不是说你这个不好,就是感觉可能芯片用的都是一样的
2022-05-19 15:48:44 +08:00
回复了 Richard14 创建的主题 问与答 Numpy 对一串向量进行量化有什么简便写法吗
如 LS 所说 sklearn 里面有, 找缩放的部分
这个要手写也简单, 主要分为两部分
1. rgb 转为灰度图, 这个有公式
2. 转完之后是一个 0 - 255 的小数, // 16 即可
2022-05-19 15:32:26 +08:00
回复了 um1ng 创建的主题 Visual Studio Code 各位在用什么主题的 vscode
gruvbox yyds
不是全域快门
2022-05-10 19:49:02 +08:00
回复了 volvo007 创建的主题 Go 编程语言 都说 go 简单 小白学完 channel 马上就不会了
@flmwswd 我猜反正就是有一个爆栈了…… 没有多的报错, 但是如果我的 main 里面 sleep 一下的话, 这些东西就能跑完. 上面大佬提到说给一个可控的阻塞, 就能实现和 sleep 不可控阻塞一样的效果.

原理上来说现在是搞明白了, 就是 main 里面的语句遇到 goroutine 就只管开协程然后继续往下跑. 如果 main 里面没有阻塞, 那 main 就会先跑完, 然后那些 goroutine 都跳过去了

以我的例子为例, 如果将 塞数据、用数据作为两个函数分别执行的话, main 函数里应该是这样的吧:

1. 第一个 for 之前
2. 第一个 for, 生成第一个函数的一个 goroutine
2a. 第一个 goroutine 开始跑
3. 不管第一个 goroutine 跑的怎么样了, 我进入第二个 for, 开启第二个函数的 goroutine
3a. 第二个 goroutine 开始跑
4. 继续往下看 main 有无阻塞, 没阻塞就啥都跑不出来. 有阻塞就等阻塞结束, 然后等待的这个期间, 其他 goroutine “趁机” 跑完

所以原来的写法, 就是每一次 for 循环都会加入一个 goroutine 并行跑. 这个迭代对象的内容少一些就可以正常跑完, 一旦多了, 新建的比消耗的速度快, 迟早会爆掉

所以原来的写法处理少量数据还行, 大量的就不行了, 但思路上也不应该每一次 for 循环都创建 goroutine, 这是明显的错误写法. 另一方面, 我创建了 1000 个写的 goroutine 和 1000 个读的 goroutine 又能怎么样呢, channel 不是只有一份嘛 😂…… 等于说只是大家抢着往这个 channel 队列里面塞东西和拿东西罢了, 但是这个 channel 的进出口只有一个啊……

所以思路上应该是一开始就建立比如 20 、50 个 goroutine 用来写到对应数量的 channel 里, 然后若干其他的 goroutine 用来读和处理, 这样才能“并行”起来对吧. (并且一旦某个 channel 没有数据之后还要关掉)

由于这个例子里面, 很多人反应 新建文件夹 和 移动文件容易造成问题, (而且没准我真的遇到了问题只是自己不能判断是否是线程安全问题造成的), 所以后面我准备换一个缩略图的例子试一下. 假设一个文件夹内有 6w 张图片, 我准备试一下看看如何用并行的方式去处理这些图片
2022-05-05 20:24:23 +08:00
回复了 volvo007 创建的主题 Go 编程语言 都说 go 简单 小白学完 channel 马上就不会了
@seers 大佬说的对…… 我看教程里面就是给了个返回信号 (同时也说了 main 其实也是个协程)…… 但我有点懵不知道咋给
目前的想法是, 多给一个 done chan bool 类型, 事情做完了就 bool <- true, 但是这玩意怎么给到外面我再想想……
2022-05-05 19:38:15 +08:00
回复了 volvo007 创建的主题 Go 编程语言 都说 go 简单 小白学完 channel 马上就不会了
@Frankcox 谢谢大佬的回复, 我照着实现了一下

关于 sync.Map 我搜了一下, 主要是为了解决 map 线程不安全的问题而设立了 sync.Map. 这个我在代码里用到了文件夹是否存在的判断上面. 如果没有相关文件夹, 我要建立一个新的文件夹并保存, 并在 map 里放入一个对应的名字. 如果不用 sync.Map 往 map 里面写东西的时候可能会乱掉

我用大佬的写法确实跑成功了, 但是文件数量一多 (比如 2w), 还是会 runtime: failed to create new OS thread 错误 😂
2022-05-05 17:52:12 +08:00
回复了 volvo007 创建的主题 Go 编程语言 都说 go 简单 小白学完 channel 马上就不会了
目前情况是, 用 waitgroup, 并通过循环 Add 文件处理操作任务, 在循环外 wait 所有任务结束

这种写法可以跑, 但是文件数量太多的话就会 runtime: failed to create new OS thread 报错

如果一个文件夹包含 2w 个 .txt 文件和 2w 个 .abc 文件, 非并发可以跑完, 耗时 1.5 - 2.3 s; waitgroup 方式报错, 感觉是创建了太多携程. 目前还不知道有没有办法创建指定的携程数量去处理这些任务

另一方面, 如果降低文件数量, 比如只包含 2k 个 .txt 文件 和 2k 个 .abc 文件, 这个时候 waitgroup 也可以跑了. 非并发和并发分别耗时 250+ ms 和 160+ ms. 并发的是会快一些 (都是空文件, 也都是直接移动文件而非复制, 应该没什么 io 压力所以区别还没有那么明显)
1 ... 18  19  20  21  22  23  24  25  26  27 ... 49  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2691 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 01:47 · PVG 09:47 · LAX 17:47 · JFK 20:47
Developed with CodeLauncher
♥ Do have faith in what you're doing.