태그 보관물: libreoffice-writer

libreoffice-writer

Libre Office Writer로 복사 한 이미지가 왜 픽셀처럼 보입니까? 복사하면 그리고 구글 크롬에서 드래그 앤 드롭을 통해

이 이미지를 복사하면

그리고 구글 크롬에서 드래그 앤 드롭을 통해 Libre Office Writer (4.3.3.2)에 붙여 넣습니다.

왜 이렇게 픽셀 화 / 퍼지입니까?

어떻게 든 원본 이미지를 복사하지 않습니다. 기본적으로 원본 크기로 복사하도록하려면 어떻게해야합니까?

그러나 원래 크기로 설정 한 후에도 여전히 픽셀 화됩니다. 어떻게 고칠 수 있습니까?



답변

이 문제는 LibreOffice (tdf # 86675)에서 알려진 문제로, 가져 오기 / 삽입 및 배율 조정되는 PNG 이미지가 배율 조정에서보다 일반적인 Bilinear 또는 BiCubic (Catmull-Rom) 픽셀 해석이 아닌 문서 캔버스를 렌더링 할 때 “가장 가까운 이웃”을 사용합니다. . 또한 현재 LibreOffice에서는 알파 채널이있는 PNG가 항상 가장 가까운 이웃을 사용하여 “크기 조정”된다고 생각합니다.

Linux 빌드에서는 특히 Windows 빌드에서는 덜 문제가됩니다.

따라서 필요한 정확한 크기로 PNG를 준비하고 알파 이외의 채널 PNG를 준비하거나 변환 할 수있는 경우 (ImageMagick의 “convert input.png -background white -alpha remove output.png”또는 유사한 유틸리티 사용) LibreOffice 문서에서 적절한 이미지 삽입 및 렌더링이 가능해야합니다.

참조 :
https://bugs.documentfoundation.org/show_bug.cgi?id=86675


답변

여기에서 추출 된 원본 이미지의 폭파가 있습니다.

이 이미지가 처음에 이미지 인 경우 품질이 낮음을 분명히 알 수 있습니다. 그래픽 도구로 더 많이 날려 보면 더 명확하게 나타납니다.

첫 번째 이미지가 첫 번째 이미지 인 경우 원래 텍스트 데이터이며 글꼴이 다듬어졌습니다. 이 때문에 이미지는 균일하게 흑백이 아니지만 일부 픽셀에는 회색 값이 있습니다. 이런 종류의 글꼴 다듬기는 어디에서나 발생하며 반드시 필요합니다. 픽셀은 정사각형이기 때문에 다른 부드러운 선을 가질 수는 없지만 완벽하게 수평이며 완벽하게 수직이므로 글꼴 다듬기가 뷰어의 뇌를 속이는 데 사용됩니다.

붙여 넣기에서 픽셀 화를 일으키는 것은 기본적으로 TheKB의 압축입니다. 붙여 넣는 것은 비트 맵 이미지이며 압축으로 인해 이미지 데이터가 손실됩니다. 회색 값이 손실됩니다. 이 압축은 LiberOffice 자체에서 수행됩니다.

SVG를 가져올 때 벡터 그래픽을 가져옵니다. 이것은 그래픽을 제작하는 완전히 다른 방법이며, 제한없이 확장 할 수 있습니다. 벡터 그래픽은 스탬프 나 후버 댐에 넣든 항상 동일하게 보입니다.

이유는 다음과 같습니다 (단순 버전).

위의 이미지는 간단한 검은 사각형, 크기 4×18 픽셀, 검은 색을 보여줍니다. 이 이미지가 비트 맵 인 경우 각 픽셀의 위치와 색상을 개별적으로 지정해야합니다. x는 1 바이트, y는 1 바이트, 컬러는 1 바이트라고 가정하고 4 x 18 x 3 = 216 바이트의 이미지 데이터를 얻습니다.

이 이미지가 벡터 인 경우 각 모서리의 위치 만 지정하면됩니다. 이 위치를 사용하여 영역을 정의하고이 영역을 채울 색을 지정합니다. 위치는 여전히 각 픽셀마다 2 바이트이지만 색상은 이미지 데이터의 4 x 2 + 1 바이트 = 9 바이트의 추가 1 바이트 만 필요합니다. 따라서 벡터 이미지는 비트 맵보다 훨씬 간단합니다.

가져온 SVG의 예를 여기에 넣지 않았지만 폭파하면 위의 첫 번째 이미지와 거의 비슷하게 표시됩니다. LibreOffice는 원형 및 각진 선을 부드럽게합니다. 그러나 이미지 데이터가 훨씬 적기 때문에 압축 할 것이 없습니다.

이것이 바로 LibreOffice가 다른 이미지 형식을 처리하는 방식입니다. 복사-붙여 넣기를 원본과 똑같이 보이게하려면, 손실없이 100 % 품질로 LibreOffice를 붙여 넣을 방법을 찾아야합니다. 또는 벡터를 계속 가져옵니다.


답변