Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Copy PDF annotations keep the same size on the Windows and macOS #9068

Closed
zxhd863943427 opened this issue Aug 29, 2023 · 40 comments
Closed

Copy PDF annotations keep the same size on the Windows and macOS #9068

zxhd863943427 opened this issue Aug 29, 2023 · 40 comments
Assignees
Milestone

Comments

@zxhd863943427
Copy link
Contributor

In what scenarios do you need this feature?

在左右分屏情况下,pdf矩形标注获得的图片比较模糊,不能满足使用,导致实际使用时必须放大pdf区的比例来获得更清晰的图片,但对于左右分栏的pdf还是不够。
图片

如果能给pdf矩形标注复制增加一个可设置的固定系数,就能提高这样的体验,增强pdf分屏模式下矩形标注的实用性。

图片

Describe the optimal solution

将固定系数的调节加入到思源的设置中,固定系数的实现参看
cc2cc04

Describe the candidate solution

如果实在不行,那我也希望能设置一个恒定的固定系数,我认为可以是1

Other information

No response

@Vanessa219
Copy link
Member

昨天在我电脑上有原图的 6 倍之大,移除倍数后是 2 倍。用你最新的代码是 3 倍,但是依旧存在问题,每次复制的都是当前尺寸的三倍,并不是实际大小的三倍。

image

这个代码没太深入研究,还麻烦再帮忙调试一下,谢谢。

@zxhd863943427
Copy link
Contributor Author

emmm,核心想法不是为了相对实际大小设置的,而是相对目前显示大小设置的,因为canvas渲染的效果在相同像素下明显比思源中查看要好,所以需要调大截取的比例,保证两者的显示效果差不多。如果使用其他的图片查看器,比如直接使用window的照片,增加0.5的系数就很足够了。

不过移除后为什么是两倍大小?这个结论是怎么来的,能发来测试的pdf吗?

@Vanessa219
Copy link
Member

如果放太大的话,这种小图片就每次都需要用户去手动调整大小,很麻烦
image

不用实际的话,用户每次调整缩放后再次复制的就都不一样(尤其是选择自动缩放后),这样用户还是需要去手动调整成一样,感觉也很麻烦。

不知道是不是因为 scale 等于 2,这个 debugger 能看出问题么?不能的话我再私发 PDF 给你
image

@zxhd863943427
Copy link
Contributor Author

那我明白了,这个scale获取的是全局或应用的缩放,也就是windows的这个设置:

图片

v姐你应该用的是4k屏加全局2倍缩放,才会有这个scale。

但是,在思源或者说web应用中,canvas使用的是实际像素,应用中的图片使用的是被全局缩放影响过的放大像素。因此,虽然从canvas中截取的就是真实的图片大小,但是在思源中显示是会放大的。

如果要保证两者的目测大小一致,那应该取scale的倒数,这样会导致显示效果更加的模糊,在v姐你的设备上相当于原始图片放大4倍的清晰度,我认为这才是不可接受的。

因此,这虽然与用户的第一直觉不符,但是才是合理的做法。

另外,截取这么少的面积对于矩形标注来说才是少见的用法,大面积的框选才是更为常见的,为了这方面的用途,还是需要增加放大系数。

@zxhd863943427
Copy link
Contributor Author

另外,使用显示的大小作为基准是很有必要的,因为pdf的大小和形式都是不确定的,有分屏的、纵向的、还有大小经过缩放的,我们没办法使用pdf上的参数确定这个图片截取到什么缩放才是合理清晰的,只能以用户在查看时使用的是什么缩放作为参考。

所以我的想法就是在用户目前查看的缩放等级上增加一个固定值,这样才能更好的以不变应万变。

@Vanessa219
Copy link
Member

我的是 Mac,应该没有进行过缩放。

是否可以把导出的图片的大小设置为实际大小下的像素值,这样不仅可以兼容中小图,还可以保持任何情况下复制后的图片大小。

@zxhd863943427
Copy link
Contributor Author

我查了一下,mac的应该会有默认的缩放设置
图片
v姐你可以使用手动截图看看,应该会发现截图的显示大小是你实际截取大小的2倍。

因此,这实际上是一个显示的问题,可以在初始化阶段先获取缩放系数,然后反向设置css即可。

Vanessa219 added a commit that referenced this issue Aug 31, 2023
@Vanessa219
Copy link
Member

我调整了一下,你看看这个效果是否可以?

@zxhd863943427
Copy link
Contributor Author

依然模糊,这个真的是显示大小的问题。
图片

@zxhd863943427
Copy link
Contributor Author

图片
这是我直接修改css的效果。

@Vanessa219
Copy link
Member

我换个电脑看看 ,感觉我这个还可以
image

@Vanessa219 Vanessa219 changed the title 建议允许能调节pdf矩形标注的放大系数 Improves the quality of annotated copies of PDFs in Windows Aug 31, 2023
@Vanessa219 Vanessa219 self-assigned this Aug 31, 2023
@Vanessa219 Vanessa219 added this to the 2.10.3 milestone Aug 31, 2023
@Vanessa219 Vanessa219 changed the title Improves the quality of annotated copies of PDFs in Windows Copy PDF annotations remain the same size regardless of how the PDF is scaled Aug 31, 2023
@zxhd863943427
Copy link
Contributor Author

但是清晰度下降真的很严重啊……明显是变大且模糊了。

而且v姐你不应该截取小区域进行测试吗?

@Vanessa219
Copy link
Member

Vanessa219 commented Aug 31, 2023

我在 Window 上看并不模糊,大的2倍不到,大部分场景可以接受。你用的是 dev 最新的代码么?

f66bb407bed54f111eab96f4ab03f6f3_720

@zxhd863943427
Copy link
Contributor Author

zxhd863943427 commented Aug 31, 2023

完全不行,属于不可接受的等级。正如我之前说的,不可能从pdf中得知什么样的缩放最合适,比如我找了一个字比较小的pdf,那么公式已经完全看不清了。在图片中,我完全看不出是x还是2,还是‘’
图片
依靠用户当前的缩放才是更加合理的

EightDoor added a commit to EightDoor/siyuan that referenced this issue Sep 1, 2023
* commit 'a63e1fda2e203917ae7f72cb359155f4094c4f3e': (217 commits)
  ⚡ Improve block loading performance on Windows/Linux/macOS amd64 arch siyuan-note#9084
  💄
  ⚡ Improve block loading performance on Windows/Linux/macOS amd64 arch siyuan-note#9084
  🐛 Block hyperlinks do not point to regenerated block IDs when importing .sy.zip siyuan-note#9083
  🎨 Reduce the memory usage of PDF asset file content parsing on the mobile siyuan-note#9079
  🎨 HTTPS certificate is no longer verified when `Convert network images to local images` siyuan-note#9080
  🐛 fix siyuan-note#9076
  🐛 fix siyuan-note#9076
  🐛
  🎨 siyuan-note#9068
  🎨 Improve the response status code of  kernel API `/api/file/getFile` siyuan-note#9075
  Improve the response status code of  kernel API `/api/file/getFile` (siyuan-note#9075)
  ✨ siyuan-note#9032siyuan-note#9032
  🐛 The update button is not displayed after the marketplace package version is updated Fix siyuan-note#9074siyuan-note#9032
  🎨 Improve asset file content search preview escaping siyuan-note#9073
  🎨 Improve asset file content search preview escaping siyuan-note#9073
  🎨 Improve EPUB asset file content parsing siyuan-note#9072
  ♻️ siyuan-note#9032
  ...

# Conflicts:
#	README.md
@Vanessa219
Copy link
Member

这应该属于比较特殊的情况,可以用 QQ 截图代替一下。

@zxhd863943427
Copy link
Contributor Author

不能这么说,如果这个还需要使用其他的截图功能来代替,那这个功能还不如不改进呢,至少以前只是有边框,现在是完全用不了了。

@zxhd863943427
Copy link
Contributor Author

而且,特殊情况也并不特殊,从我的图片版pdf里,一半都会出现这种情况。文本还能直接划选,那图片版该怎么办?

@zxhd863943427
Copy link
Contributor Author

我提交这个pr是为了能根据需要获取高清的截图,痛点是之前总是有边框,截的图片不够清晰,但是这越改越难用……我是真的很难受。

@zxhd863943427
Copy link
Contributor Author

图片
这种例子是很多的。

@zxhd863943427
Copy link
Contributor Author

zxhd863943427 commented Sep 1, 2023

v姐你也可以自己用这个pdf试试。
test.pdf

@zxhd863943427
Copy link
Contributor Author

再来一个过大的
干燥技术在果蔬中的应用综述.pdf

@Vanessa219
Copy link
Member

好像也有道理,可能平常 pdf 用的比较少。

@zxhd863943427
Copy link
Contributor Author

那v姐可以重新考虑一下这个吗?

@Vanessa219
Copy link
Member

嗯嗯,这个版本会改的,要晚一点,还在改其他的 issue。

Vanessa219 added a commit that referenced this issue Sep 4, 2023
@Vanessa219
Copy link
Member

设置为 1.5 倍,麻烦再帮忙看看是否可行?

@zxhd863943427
Copy link
Contributor Author

v姐,你拿我发的两个测试文件测试一下不就知道了……固定缩放的适用面太小了。

@zxhd863943427
Copy link
Contributor Author

能同时满足这两个文件的只能是动态缩放。

@Vanessa219
Copy link
Member

昨天已经改成动态的了

@Vanessa219 Vanessa219 changed the title Copy PDF annotations remain the same size regardless of how the PDF is scaled Copy PDF annotations keep the same size on the Windows and Mac Sep 5, 2023
@zxhd863943427
Copy link
Contributor Author

图片
从实际情况来看,依然是固定的

@Vanessa219
Copy link
Member

是 Dev 分支的代码,在 600% 和 200% 下的情况
image

@88250 88250 changed the title Copy PDF annotations keep the same size on the Windows and Mac Copy PDF annotations keep the same size on the Windows and macOS Sep 5, 2023
@zxhd863943427
Copy link
Contributor Author

图片
刚刚试了下,是我没刷新的原因……

@Vanessa219
Copy link
Member

画质什么没问题的话,这个 issue 就这样吧,今天要打包发布了。

@zxhd863943427
Copy link
Contributor Author

在左右分屏的情况下,分栏的pdf图像略微模糊……v姐你要不还是用我这个提交 cc2cc04 吧,目前这个在小缩放的时候还是会有点模糊。

图片

原缩放 1.5倍放大 +1放大
0.5 0.75 1.5
0.75 1.125 1.75
1 1.5 2
1.25 1.875 2.25
1.5 2.25 2.5
2 3 3
3 4.5 4
4 6 5
如果发包要紧的话,那下个版本继续调整也行

@zxhd863943427
Copy link
Contributor Author

这个模式在不使用分栏的pdf的情况下是能接受了。

@Vanessa219
Copy link
Member

版本已经发布了。

按照用户缩放后的比例进行截图,左右分屏和不分屏的情况下如果缩放比一样,大小应该也是一样的。

@zxhd863943427
Copy link
Contributor Author

版本已经发布了。

按照用户缩放后的比例进行截图,左右分屏和不分屏的情况下如果缩放比一样,大小应该也是一样的。

确实如此,只是我希望能适当提高放大系数,目前的放大获取方案不能良好保证任何缩放都能获取足够清晰的图片。

按乘法来的话,在缩放小、比较模糊的时候只能有限改善模糊,在缩放大的时候,又会获取到过大的图片。

所以我的想法是使用加法方案。

更精确的动态缩放系数也有,但是不如加法方案在效果可接受的情况下实现简单。

@Vanessa219
Copy link
Member

这个 PDF 看上去是不太清晰的,我们是否可以理解为用户在使用的时候如果不在乎清晰程度,最终也不会太在意截图的清晰程度。

image

如果要修改的话,是不是需要在这里根据缩放的大小来使用某个算法来使其最终截图不会过于太大而且清晰?

image

@zxhd863943427
Copy link
Contributor Author

zxhd863943427 commented Sep 6, 2023

这个pdf是一个矢量化的pdf,实际上的分辨率是无限的。显示较不清晰只是受到分屏时屏幕大小的限制。

是否理解为用户在使用的时候如果不在乎清晰程度,最终也不会太在意截图的清晰程度。

我认为这一点是不太正确的,实际上用户自然是希望无限清晰的,只是受到了图片体积的制约。如果说用户最终选择了较为有限的清晰度,那也只是出于图片体积和图片清晰度的综合考量。

但无论如何,用户肯定是希望图片在查看的时候是清晰的,只是不要求无限放大也能保持清晰。因为思源图片总是相较于pdf中相同的像素放大显示,因此增加放大系数来获取截图是符合用户意愿的。

如果要修改的话,是不是需要在这里根据缩放的大小来使用某个算法来使其最终截图不会过于太大而且清晰?

因此,这里的说法只能有限的成立,正确的说法是需要根据缩放的大小,来使用某个算法来使其最终截图在清晰度可接受范围内、体积不会过大。

在我观察了各种算法的效果后,我觉得还是直接使用加法来增加放大系数比较简单且效果可接受,更强的算法是获取截取面积和屏幕面积,然后再使用非线性算法进行计算,但这个就比较麻烦一点。我pr的哪个原始版本直接修改getCaptureScale就行,在v姐你改成现在的代码后,我觉得是有点难以下手了。

@zxhd863943427
Copy link
Contributor Author

如果v姐你觉得可以的话,我觉得可以到ld社区进行一下投票,来一个小规模的抽样调查。

@Vanessa219
Copy link
Member

搜索 1.5 这个,目前是写死的,修改为需要的算法应该就可以了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants