기타 [vb.net] "하드코딩"과 "소프트코딩"(로딩)
페이지 정보
본문
오래간만에 질문이 올라온 글을 보다가 아래와 같은 소스를 발견하였다.
Select Case m_cmbSaveAs.Text
Case "*.bmp"
m_bitmap.Save(strFileName, ImageFormat.Jpeg)
Case "*.jpg"
m_bitmap.Save(strFileName, ImageFormat.Jpeg)
Case "*.gif"
m_bitmap.Save(strFileName, ImageFormat.Gif)
Case "*.tif"
m_bitmap.Save(strFileName, ImageFormat.Tiff)
End Select
이와 같은 소스를 아래처럼 줄일 수 있다
Dim extension As String = IO.Path.GetExtension(strFileName).ToLower.Replace("jpg", "jpeg")
Dim imgFormat As ImageFormat = CType(GetType(ImageFormat).GetProperty(extension, BindingFlags.[Public] Or BindingFlags.[Static] Or BindingFlags.IgnoreCase).GetValue(Nothing, Nothing), ImageFormat)
m_bitmap.Save(strFileName, imgFormat)
둘 다 장단점이 있겠지만 난 아래 방법을 선호한다.
무엇보다 확장자 추가에 따른 대응이 쉽다는 장점이 있다
위 소스코드는 이미지 형식을 추가할 경우 더 많은 소스코드 수정이 들어간다.
- 이전글[vb.net] Assembly GUID 가져오기 22.07.09
- 다음글[vb.net] URL 이미지 Image 변환 및 저장 22.06.26
댓글목록
등록된 댓글이 없습니다.