IT정보공유/C#

c# 이미지파일을 Base64 문자열로 가져오는 방법

알지오™ 2020. 11. 27.

네이버 API 중 SMS, MMS 등의 문자메세지를 전송할 수 있는 네이버 SENSE API를 사용중입니다.

단문 메세지를 전송하는 SMS (80바이트 정도의 글자만 전송)

그리고 장문의 문자를 보내거나 파일을 첨부할 수 있는 MMS 문자메세지 기능을 테스트 하고 있는데요.

그중에서도 MMS를 이용한 JPG 파일같은 이미지 파일을 문자메세지에 포함시켜서 보내는 기능을 시험하고 있습니다.

 

네이버 센스 API 문서를 보면, 이미지파일을 첨부할 경우

이미지 파일을 Base64로 인코딩된 문자열로 바꾸어 API 호출시 JSON 파라미터로 전달해야 합니다.

 

네이버 센스(Naver Sense SMS API v2)

 

 

SMS API - API 참조서

기본 정보 API URL https://sens.apigw.ntruss.com/sms/v2 항목 Mandatory 설명 Content-Type Mandatory 요청 Body Content Type을 application/json으로 지정 (POST) x-ncp-apigw-timestamp Mandatory 1970년 1월 1일 00:00:00 협정 세계시(UTC)부

apidocs.ncloud.com

 

그런데 바이너리 파일인 이미지파일을 문자열로 변환한다니?

어떻게 해야할까 싶더라고요.

생각보다 쉽게 변환할 수 있었습니다.

 

JPG 파일을 Base64 문자열로 변환

 

//

private string GetStringFromImageFile(string filename)
{
	//ex : filename is @"c:\testsample\mmstest.jpg"
	
	string base64Image = "";	
	
	Image img = Image.FromFile(filename);

	MemoryStream mstream = new MemoryStream();

	img.Save(mstream, img.RawFormat);
	
	byte[] imgBytes = mstream.ToArray();

	base64Image = Convert.ToBase64String(imgBytes);
	
	return base64Image;
}

//

 

간단하게 소스코드에 대한 설명을 곁들이자면, 

이미지 파일을 불러온 후, 메모리 스트림으로 변환 합니다.

그 후에 메모리스트림을 바이트배열로 변환하고, 변환된 바이트배열을 Convert.ToBase64String 함수를 이용하여

문자열로 변환하게 되는 것이죠.

 

댓글

💲 추천 글