2016-07-26 1 views
2

내 코드에서 비트 맵 이미지를 열고 간단히 다시 저장합니다. 그것은 동일한 품질과 특성을 유지해야합니다. 그러나 결과적으로 이미지의 크기는 변하지 만 해상도는 동일하게 유지되고 시각적으로 변경되지 않습니다. 변경하지 않고 이미지를 열고 저장하려면 어떻게합니까? 내 코드 : 앞으로이미지를 열고 동일한 매개 변수로 다시 저장하십시오. C#

  Bitmap img = (Bitmap)Image.FromFile(path, true); 
      img.Save(path); 

은 이미지의 불투명도를 변경해야하지만, 지금은 그냥 열고 저장합니다. 이미지 크기가 왜 바뀌고 있습니까? 크기가 동일한 포맷 JPG 이미지와 동일하게 유지

I 않았다 : 그것은 UPDATE는 (301 이하 대 386)

보다 크기가 작아진다. PNG 만 크기를 변경하고 있습니다. 또 다른 PNG 파일 크기가 커졌습니다. 이것을 피할 수있는 방법이 있습니까?

+0

'Bitmap.Save'는 기본적으로'PNG'에서 이미지를 저장합니다. 이미지를로드하는 것과 같은 이미지 형식입니까? – Pikoh

+0

PNG는 무자비합니다. 따라서 파일 크기가 변경 될 수 있으므로 픽셀/품질 자체는 그대로 유지됩니다. –

+0

나는 아래의 답을 사용하여 png로 저장하고 있지만 크기는 여전히 변하고있다. @CasparKleijne 크기를 동일하게 유지해야합니다. 가능합니까? –

답변

0

파일 크기가 변경 될 경우 걱정할 필요가 없습니다. PNG는 모든 정보를 유지하면서 파일을 압축하는 무손실 형식입니다. 즉, 파일 크기가 감소하더라도 각 픽셀의 정보와 정확한 색상은 동일하게 유지됩니다.

파일 크기는 이미지를 저장하는 데 사용 된 라이브러리에 사용 된 알고리즘에 따라 다릅니다. 다른 라이브러리 및 프로그램의 경우 알고리즘이 약간 다를 수 있습니다. 이미지 크기가 변경되는 이유. 너는 이것을 피할 수 없다.

0

원본 이미지와 다른 이미지 형식으로 이미지를 저장하는 것이 좋습니다.

img.Save(path, System.Drawing.Imaging.ImageFormat.Gif); 

그리고 모든 형식이 같은 : 예를 들어, 원래의 이미지가 GIF 경우, 다음과 같이해야합니다.

+0

.png 파일을 열고 .png 파일로 저장하는 중, 사용 방법을 시도했지만 크기가 계속 변경되고 있습니다. –

+0

@SamStone 그렇다면 .Net PNG 알고리즘은 원래 이미지를 저장하는 데 사용 된 알고리즘과 다르거 나 색상 차이를 변경하여 파일 크기 차이를 유발할 수 있습니다. 그냥 확인하려면 .net 생성 된 png 파일을 사용하여 동일한 작업을 수행 할 수 있습니다. 즉, 첫 번째 단계에서 생성 된 파일을 열고 변경하여 변경 사항을 확인하십시오. 또한 어떤 이미지 정보 소프트웨어를 사용하여 두 이미지를 비교하여 다른 이미지가 있는지 확인할 수 있습니다. – Pikoh

0

System.Drawing의 PNG 인코더는 이미지를 특히 많이 압축하지 않으므로 변경할 방법이 없습니다. 많은 사람들이 사용하려고 시도한 EncoderParameters 속성은 단순히 무시됩니다.

사용 가능한 소프트웨어의 다양한 PNG 인코더는 서로 다른 압축 기능을 제공하며 차이점은 압축의 차이입니다. 첫 번째 파일은 압축없이 저장되었으며 두 번째 파일은 압축률이 더 높았습니다.

관련 문제