2011-02-24 5 views
1

이미지를 회전시키는 코드 스 니펫이 있습니다..net rotateflip은 파일 크기를 줄입니다.

Sub RotateImage(ByVal FilePath As String) 
    Dim img = System.Drawing.Image.FromFile(FilePath) 
    img.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone) 
    img.Save("c:\test.jpg", ImageFormat.Jpeg) 
    img.Dispose() 
End Sub 

어떤 이유로 원본 이미지 대신 새 이미지가 1.69MB가 아닌 758kb입니다.

이유가 무엇이며 어떻게 해결할 수 있습니까?

이미지를 압축하고 싶지 않고 그냥 회전 시키십시오.

그 외에도, 나는 win explorer에서 속성을 비교했으며, 모두 해상도와 함께 동일하게 보입니다. 그래서 실제로 일어나는 것은 무엇입니까?

+0

원본 이미지가 JPG입니까? –

+0

확장자는 ".jpg"입니다. 다른 것일 수 있습니까? 직접 카메라에서. –

+0

나에게 아이디어가 있으십니까? 아무도? –

답변

2

아마도 이미지가 레코딩 되었기 때문일 수 있습니다. 문서에서 아무런 내용이 보이지 않으면 RotateFlip은 무손실이어야합니다.

Google로 둘러보기를 사용하면 시도 할만한 답변이 this article이됩니다.

+0

안녕하세요. 지금까지 대답하지 못했습니다. 왜냐하면 jpg와 압축에 대해 조금 배우고 싶었 기 때문입니다. 아주 좋지 않은 무언가. 당신은 rotateflip이 반드시 무손실 압축이 아니라고 말합니다. 하지만 전혀 압축을 할 수 있습니까? 나는 처음부터 압축하고 싶지 않다. 당신이 연결하는 코드, 나는 이미 과거에 시도했지만 오류가 발생했습니다. 이제 다시 시도하고 저자에게 연락 할 수 있는지 확인합니다. 추가 할 것이 있으면 :-)하십시오! –

+0

@Yisman, JPEG 이미지는 압축되어 있습니다. 이미지에서 무언가를 변경할 때 적어도 편집 된 부분은 압축을 다시해야합니다. 90 ° 회전에는 사용할 수있는 특별한 무손실 트릭이 있지만 이미지를 회전하고 결과를 압축하면 적용되지 않습니다. 마술 트릭을 사용해야합니다. 압축을 제거하려면 BMP로 저장하거나 PNG와 같은 무손실 압축을 사용하십시오. 그것은 파일 크기를 증가시킬 것입니다. –

+0

고마워요! 그 지금 일하고있어. 그것은 여전히 ​​몇 kb로 파일을 줄입니다. 그게 문제라고 생각하니? –

관련 문제