문제

누군가 품질 손실이 없이 투명한 이미지 (주로 GIF)의 크기를 조정할 수있는 비밀 공식을 가지고 있습니까?

여러 가지 시도를 해봤지만 가장 가까운 것이 충분하지 않습니다.

내 기본 이미지 살펴보기 :

http://www.thewallcompany.dk/test/main.gif

크기 조정 된 이미지 :

http://www.thewallcompany.dk/test/ScaledImage.gif 라코 디스

인덱싱 된 크기 조정을 위해 위 코드를 사용하고 있습니다.

개선 아이디어가있는 사람이 있습니까?

도움이 되었습니까?

해결책

확장 후 파일 형식 보존에 대한 요구 사항이 없다면 다음 접근 방식을 권장합니다. 라코 디스

결과는 정말 멋진 안티 앨리어싱 가장자리를 갖게됩니다

다른 팁

이것은 GDI +를 활용하는 몇 가지 애플리케이션에 사용했던 기본 크기 조정 기능입니다. 라코 디스

GIF와 함께 작동하는지 기억이 나지 않지만 시도해 볼 수 있습니다.

참고 :이 기능에 대해 전적인 기여를 할 수는 없습니다.온라인에서 다른 샘플에서 몇 가지를 모아서 내 필요에 맞게 작동하도록했습니다. 8 ^ D

문제는 스캔 라인 기반 크기 조정을 수행하고 있다는 것입니다. 아무리 세게 조정해도 들쭉날쭉해질 것입니다.좋은 이미지 크기 조정 품질을 사용하려면 크기 조정 된 픽셀이 덮는 사전 크기 조정 된 픽셀의 평균 색상을 파악하기 위해 더 많은 작업을 수행해야합니다.

이 웹 사이트를 운영하는 사람은 몇 가지 이미지 크기 조정 알고리즘에 대해 설명하는 블로그 게시물을 가지고 있습니다.bicubic 이미지 스케일링 알고리즘이 필요할 것입니다.

더 나은 이미지 크기 조정

Markus Olsson의 솔루션을 사용하여 이미지의 크기를 동적으로 조정하고 응답 스트림에 기록하려는 모든 사용자를위한 것입니다.

작동하지 않음 : 라코 디스

하지만 다음과 같은 효과가 있습니다. 라코 디스

PNG가 GIF보다 확실히 낫지 만 때때로 GIF 형식을 유지해야하는 사용 사례가 있습니다.

GIF 또는 8 비트 PNG를 사용하면 양자화 문제를 해결해야합니다.

양자화는 이미지를 가장 잘 보존하고 표현할 256 (또는 그 이하) 색상을 선택한 다음 RGB 값을 다시 인덱스로 전환하는 곳입니다. 크기 조정 작업을 수행하면 색상을 혼합하고 균형을 변경할 때 이상적인 색상 팔레트가 변경됩니다.

10 ~ 30 %와 같이 약간의 크기를 조정하는 경우 원래 색상 팔레트를 유지하는 것이 좋습니다.

그러나 대부분의 경우 다시 정량화해야합니다.

선택할 주요 두 가지 알고리즘은 Octree와 nQuant입니다. Octree는 매우 빠르며 특히 스마트 디더링 알고리즘을 오버레이 할 수있는 경우 매우 훌륭합니다. nQuant는 인코딩을 수행하기 위해 최소 80MB의 RAM이 필요하며 (전체 히스토그램을 작성 함) 일반적으로 20-30 배 더 느립니다 (평균 이미지에서 인코딩 당 1-5 초). 그러나 일관된 성능을 유지하기 위해 값을 '반올림'하지 않기 때문에 때때로 Octree보다 더 높은 이미지 품질을 생성합니다.

imageresizing.net 프로젝트에서 투명 GIF 및 애니메이션 GIF 지원을 구현할 때 저는 Octree를 선택했습니다. 이미지 팔레트를 제어하면 투명도 지원이 어렵지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top