小编Kel*_*ert的帖子

ImageMagick:如何将图像最小化为特定宽高比?

使用imagemagick,我想以最小的方式裁剪图像,以便它适合给定的宽高比.

示例:给出3038 x 2014 px的图像,我想将其裁剪为3:2的宽高比.然后生成的图像将是3021 x 2014 px,从原始图像的中心裁剪出来.

所以寻找一个类似的命令convert in.jpg -gravity center -crop_to_aspect_ratio 3:2 out.jpg.

crop imagemagick aspect-ratio

22
推荐指数
3
解决办法
8305
查看次数

标签切换事件可用于Google Chrome扩展程序?

作为Google Chrome扩展程序,是否可以收听制表符开关?也就是说,当Tab键切换刚刚发生时会收到通知?

(我想制作一个扩展,在全屏时,使用常用Ctrl+PageUp和Ctrl+PageDown键盘快捷键切换标签时,会提供开关和其他当前可用标签的视觉反馈.)

google-chrome javascript-events google-chrome-extension

8
推荐指数
2
解决办法
1万
查看次数

CSS盒子定位的形式语义

我是一名(理论)计算机科学专业的学生,​​因此研究编程语言的语义是我研究的主题之一(维基百科).

我使用CSS玩了很多,并且对盒子定位规则有了合理的理解.(如果你告诉我创建一个具有特定布局的页面,我通常会想到正确的方法和适用的CSS规则.)

为CSS盒子定位规则提供某种形式语义会很酷,但是在搜索网络一段时间之后,我找不到任何有用的东西.

我大多只是简单地结束了CSS规范,这些规范被格式化为具有伪算法的长文本(不是最大的读物 - 我还没有花很多精力阅读这些规范).

没有人试图将这个"理论"形式化为某种数学模型,比规范提供的更严格吗?我不是在寻找完整或确定的东西,但如果至少应该以正式的方式对盒子的定位方式进行建模,那么它肯定会是整洁的(并且很有用!).

有谁知道这样的研究?

css formal-methods formal-semantics

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

为什么 React 的 useCallback 没有用 ref 优化?

TL; 博士

为什么被useCallback定义为(大致)

function useCallback(callback, deps) {
  return useMemo((...args) => {
    return callback(...args);
  }, deps);
}
Run Code Online (Sandbox Code Playgroud)

而不是这样?

function useCallback(callback) {
  const fn = useRef(callback);
  fn.current = callback;

  return useMemo((...args) => {
    return fn.current(...args);
  }, []);
}
Run Code Online (Sandbox Code Playgroud)

它似乎可以解决不必要的重新渲染,同时始终使用该函数的最新版本。我还听说 Vue 3使用该选项以完全相同的方式进行优化cacheHandlers。


上下文解释版本

在编写 react 组件/钩子/上下文时,您可以直接编写函数:

const bootstrapAuth = async () => {
  // ...
};
Run Code Online (Sandbox Code Playgroud)

...或使用useCallback以下方法优化最少的重新渲染:

const bootstrapAuth = useCallback(async () => {
  // ...
}, []);
Run Code Online (Sandbox Code Playgroud)

我自己useCallback经常使用,但作为老师,我从一开始就不会教我的学生。这是一个额外的复杂性,并且就这样。我知道官方只考虑了性能问题。只是 …

javascript reactjs react-hooks usecallback

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