小编Xev*_*ion的帖子

如何计算给定背景和叠加背景的透明叠加层的颜色和不透明度?

我正在尝试对流行游戏中使用的颜色进行逆向工程。

请参阅此低质量屏幕截图作为示例:

左:#484947 右:#343737

左侧是“覆盖面”,具有背景颜色和覆盖层,右侧只是背景。

我的平台在技术上是简单的 HTML 和 CSS,我使用 Firefox,但我希望我能使用的任何技术都能转移到大多数平台。

我在互联网上查找,发现了“颜色混合模式”和“颜色混合模式”,但除了可用的选项之外,我无法找到有关每种模式背后的数学信息。

此外,我简单的测试看看这是否是一个简单的加法问题也不起作用:

Given RGBA values X, Y and Z, mix(X, Y) = Z.

X = rgba(32, 34, 35, 1.0)
Y = rgba(124, 123, 123, 0.65)
Z = rgba(93, 92, 93, 1.0)

Test: (X.r)(X.a) + (Y.r)(Y.a) = Z.r
      32 * 1 + 124 * 0.65 = 156.65

We can also rule out that it isn't multiplication, division or any sort of basic operation here.
There's either a non-simple formula or a coefficient being …
Run Code Online (Sandbox Code Playgroud)

overlay reverse-engineering colors transparent background-color

6
推荐指数
1
解决办法
705
查看次数

Flask 自定义角色包装器给出“AssertionError:视图函数映射正在覆盖现有端点函数:运行”

我正在尝试创建一个角色包装器,它允许我限制不同用户的某些页面和内容。我已经实现了用于检查此问题的方法,但是用于实现此问题的包装器/装饰器会失败,有时甚至不会失败,而且我不知道原因可能是什么。

我四处搜寻,寻找导致此问题的决定性原因,但不幸的是,Flask 的回溯并没有给出决定性的原因或解决方案,就像我提出的大多数其他搜索一样。

我正在使用 Flask-Login、Flask-Migrate 和 Flask-SQLAlchemy 来管理我的 Web 应用程序,我研究了应用 RBAC 的不同方法,但它们都需要对我的数据库模型进行看似复杂的更改,我觉得我的从长远来看,该方法将有更高的机会发挥作用。

这是我的简化代码(如果需要,我可以提供完整的应用程序)。下面是调试器的完整回溯。

谢谢。

routes.py

def require_role(roles=["User"]):
    def wrap(func):
        def run(*args, **kwargs):
            if current_user.is_authenticated:
                if current_user.has_roles(roles):
                    return func(*args, **kwargs)
            return abort(401)
        return run
    return wrap

@app.route('/hidden<id>/history')
@login_required
@require_role(roles=['Admin'])
def hidden_history(id):
    if not validate_id(id):
        return '<span style="color: red;">error:</span> bad id'
    return render_template('hidden_history.html')

@app.route('/hidden<id>/help')
@login_required
def hidden_help(id):
    if not validate_id(id):
        return '<span style="color: red;">error:</span> bad id'
    return render_template('hidden_help.html')

@app.route('/hidden<id>/')
@login_required
@require_role(roles=['Hidden'])
def hidden(id):
    if not validate_id(id):
        return '<span style="color: red;">error:</span> bad id' …
Run Code Online (Sandbox Code Playgroud)

python rbac wrapper flask flask-login

5
推荐指数
1
解决办法
1498
查看次数

Git 提交历史记录丢失并且不确定如何恢复

在我的硬盘损坏的灾难发生后,我试图恢复我的存储库并确保它们没问题,但似乎损坏已经发生,而且我现在才注意到损坏。

我的代码仍然完好无损,但我的历史,它已经不复存在了。

E:\Programming\exercism>git log --oneline
2c9cbb3 (HEAD -> master, origin/master) .gitignore clojure update
b5a05e1 ?
f2c891c ?
Run Code Online (Sandbox Code Playgroud)

?提交是我试图弄清楚发生了什么,当时我不知道我正在提交整个存储库......因为它不存在。我在 VS Code 中提交了这些更改)

我在一个主驱动器上的备份遇到了同样的问题,零提交(直到我进行第一次初始提交)并且没有历史记录,但所有代码仍然完好无损。

有问题的存储库在这里

我到处搜索手头的主题都无济于事,看来这个问题相当罕见。

编辑:对当前情况的进一步解释:

目前我的仓库中只存在 3 个提交,正常情况下应该有 40-60 个左右。

我的驱动器遭到损坏,我不得不转移其中的所有内容,包括存储库,其中一些存储库已损坏。也许其中一些造成了更多损坏,或者我做了一些最终删除或使它们无效的事情,我不知道,但今天我去处理我的存储库,我注意到一切都在等待提交,而我没有这样做知道我的存储库提交不再存在,或者也许我事先做了一些事情。我仍然不知道为什么,因为我确信我事先已经验证了这个存储库没问题,但无论如何,存储库发生了变化,3 个提交现在存在于 GitHub 上,其中应该有超过 30-40 个提交。我想回到我提交并将这些更改推送到 GitHub 之前,我知道这应该是可能的,因为我觉得 GitHub 可以而且应该存储这样的更改,而且应该很难犯这样的错误

编辑2:我决定放弃,我的原始存储库副本无法恢复......

丢失物体

也许通过一堆 git 魔法,你可以恢复我一半的提交,我知道它们在那里,因为其中一半出现在这里......

我已经给 Git 支持人员发了电子邮件,希望能得到回复,看看他们是否能做点什么,但老实说,目前还不太可能。最终没有丢失任何真正有价值的东西,这主要是我想要找回的提交历史记录,这很糟糕,但我想我必须下定决心不再让这种情况再次发生(我之前使用的是便携式硬盘,并且放弃了)它会造成损坏。无法处理这种随机损坏的安装和存储库是最容易受到攻击的,我有一个便携式 SSD,我将研究此类内容的适当 RAID 备份和存储,以及更好的理解我正在用我的仓库做什么)。

编辑3:我想我会在很长一段时间后更新这个,以防万一有人遇到与我相同的情况:我从未修复过这个问题。但幸运的是,GitHub 确实为我提供了一个包含我所有提交的仍在运行的版本的链接。我有兴趣了解如何合并我的两个历史记录,但我可能会恢复然后复制我现在的内容,因为我同时还没有在存储库上做太多工作。

不管怎样,GitHub 支持非常慢——一个月过去了他们才回复,我只是在搜索完全不同的东西时才注意到这封电子邮件。他们能做出回应真是太好了,但我担心你可能无法得到方便的回应。

git github

5
推荐指数
1
解决办法
2276
查看次数

在 Python 中访问 Windows 文件“标签”元数据

如何在 Windows 文件属性面板中访问标签属性?有我可以使用的模块吗?大多数谷歌搜索都会产生与媒体文件、文件访问时间相关的属性,但与标签、描述等元数据属性关系不大。

exif模块能够访问比我能找到的大多数属性更多的属性,但它仍然无法读取“标签”属性。

文件属性窗口

Description->属性Tags是我想要读取和写入文件的属性。

python windows metadata file

5
推荐指数
1
解决办法
6829
查看次数

如何使用 unicodedata 模块在 Python 3 中处理多字符 Unicode 表情符号?

当我使用表情符号并尝试使用unicodedata模块获取它们的代码点和名称时,我一直遇到多字符表情符号的问题。该模块拒绝让我使用字符串,而是需要字符。我尝试标准化,我尝试在utf-8和中进行编码unicode-escape,并且我一次又一次地研究它,但我没有成功地发现发生了什么!

\n
emojis = ["", "", "", "", "\xe2\x9d\xa3\xef\xb8\x8f", "\xe2\x9c\xa8"]\nfor emoji in emojis:\n    codepoint: str = hex(ord(emoji))\n    filename = \'emoji_u{0}.png\'.format(codepoint[2:])\n    print(\'{emoji} ({codepoint}) => {filename}\'.format(emoji=emoji,\n                                                       codepoint=codepoint,\n                                                       filename=filename))\n
Run Code Online (Sandbox Code Playgroud)\n

虽然是的,上面的代码没有使用该unicodedata模块,但它向您展示了我遇到的问题,无论如何......

\n
 (0x1f496) => emoji_u1f496.png\n (0x1f498) => emoji_u1f498.png\n (0x1f49d) => emoji_u1f49d.png\n (0x1f49e) => emoji_u1f49e.png\nTraceback (most recent call last):\n  File "F:/Programming/Languages/Vue.js/lovely/collect.py", line 8, in <module>\n    codepoint: str = hex(ord(emoji))\nTypeError: ord() expected a character, but string of length 2 found\n
Run Code Online (Sandbox Code Playgroud)\n

休息后,不知何故,我无意中成功地将表情符号从 this: 转换\xe2\x9d\xa3\xef\xb8\x8f为 this: …

python unicode unicode-normalization emoji

0
推荐指数
1
解决办法
1042
查看次数