createScaledBitmap에 대한 필터 매개 변수의 기능은 무엇입니까?


210

의 선언 android.graphics.Bitmap.createScaledBitmap

public static Bitmap createScaledBitmap
  (Bitmap src, int dstWidth, int dstHeight, boolean filter)

그러나 설명서에는 매개 변수에 대한 설명이 없습니다. 를 제외하고는 모두 분명하다 boolean filter. 아무도 그것이 무엇을 알고 있습니까?

답변:


86

SKIA 소스 코드를 빠르게 살펴보면 최소한 기본적으로 FILTER 플래그가 양방향 이중 보간을 수행함을 나타냅니다. 예상 결과가 무엇인지 보려면 Wikipedia 또는 선호하는 그래픽 참조를 확인하십시오. 일반적으로 이미지를 업 사이징 할 때는 이중선 또는 쌍 입방 보간을 수행하고 이미지를 다운 사이징 할 때는 영역을 평균화하려고합니다. 필터링하지 않고 크기를 조정할 때 Android / Skia에서 간단한 서브 샘플링을 수행한다는 인상을 받았지만 (수정은 기쁘지만) 크기를 줄인 경우에도 필터링을 통해 더 나은 결과를 얻을 수 있습니다. (보간법을 사용하여 일련의 50 % 스케일 축소를 수행하는 고품질 다운 사이징을 얻는 다른 방법이 있습니다. http://today.java.net/pub/a/today/2007/04/03/perils-of- image-getscaledinstance.html 자세한 내용은.)


5
잘못 전달하면 어떻게됩니까? 가장 가까운 이웃?
clahey

또한 filter = true를 전달하면 영역 평균을 수행하는지 알고 있습니까?
clahey

외부 소스를 참조하는 대신 차이점에 대한 느낌을 얻으려면 이미지를 추가해야합니다. 링크가 죽으면 소스가 사라집니다.
마틴

253

카란의 대답에 확장하려면 : 일반적으로 당신이 당신의 이미지 크기 조정하는 경우에 당신은 어떤 차이를 볼 수 없습니다 아래로 당신이 그것을 확장하는 경우,하지만 당신은 것 까지 .

전달 filter = false하면 이미지가 고르지 않고 픽셀로 표시됩니다.

통과 filter = true하면 가장자리가 더 부드러워집니다.

그러나 EIYeante가 의견에서 지적했듯이 여전히 차이가있을 수 있습니다. 이것이 그들의 예시 이미지입니다.


6
@ Mirko-nah, 괜찮아 : 지금 나에게 Populist 배지를 받아야합니다. :)
teedyay

@ElYeante-예가 있습니까? 일부 입력 및 출력 이미지가 좋을 것입니다. 감사.
teedyay

8
@teedyay이 예제를보십시오 : dl.dropboxusercontent.com/u/18446310/… 원본 이미지의 해상도는 1232x2048입니다. 이 코드로 많은 돈을 벌고 있습니다 : bm = MediaStore.Images.Media.getBitmap(this.getContentResolver(), intent.getData()); resizedBitmap = Bitmap.createScaledBitmap(bm, 150, 150, true); resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 95, out);필터 매개 변수를 변경하고 있습니다.
ElYeante

2
이 플래그는 오해의 소지가 있습니다. 앤티 앨리어싱을 방지하기 위해 리샘플링 전에 스무딩으로 다운 샘플링하는 방법은 무엇입니까?
Sam

1
링크가 @teedyay
Sagar

2

필터는 비트 맵이 사용자가 제공 한 값에 따라 변환 될 때 비트 맵의 ​​샘플링에 영향을주는 페인팅을 위해 FILTER_BITMAP_FLAG 를 설정합니다 .


2
비트 맵 샘플링에 어떤 영향을 미칩니 까?
clahey

비트 맵 샘플링에 대해 잘 모릅니다. 자세한 내용은 다음 위키 페이지를 확인하십시오. en.wikipedia.org/wiki/Resampling_%28bitmap%29
Karan

"비트 맵 샘플링에 영향을줍니다"는 정확히 무엇입니까? 좋은 효과 또는 나쁜 효과입니까?
윌리엄 데니스

@ Willian Denniss : 위의 의견을 확인하십시오. 세부 사항을 모르고 아직 시도하지 않았습니다.
Karan

0

파티에 약간 늦었지만 샘플 이미지 일부로 문제가 명확해질 수 있다고 생각했습니다.

안드로이드의 API는 어떤 종류의 필터를 적용할지 지정하지 않으므로 질문은 다음과 같습니다. 픽셀을 그대로 (8 비트 아트에서 원하는대로) 유지 하시겠습니까? (사진에서 원하는대로) 이미지를보다 맛있게 만듭니다.

수퍼 유저 에서 필터링 여부와 방법에 대한보다 일반적인 질문이 있습니다 .

Jeff Atwood의 말 :

일반적으로 더 큰 이미지를 더 작은 이미지로 만들 때는 약간의 선명 효과를, 더 작은 이미지를 더 큰 이미지로 만들 때는 약간의 흐리게 효과를 원합니다.

이미지 필터 비교

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.