locked
자마린폼의 <Image>태그의 사진을 DB에 저장하는 방법에 관한 질문입니다.. RRS feed

  • 질문

  • Xamarin Form :

    <Image x:Name="imageName" />

    ...

    C# :

    byte[] imageData = ?

    DB에 저장하기위하여 byte[]형으로의 변환이 필요한데, 도움이 필요합니다.

    감사합니다.

    2023년 2월 21일 화요일 오전 10:28

답변

  • 안녕하십니까 @ cosmoin 님
    MSDN 포럼에 질문 주셔서 감사합니다.

    ImageSource는 스트림이나 byte[]를 직접 획득하기 위한 어떠한 메커니즘도 노출하지 않기 때문에 Image의 Source로부터 만 획득할 수 있습니다.
    Source가 Local File인 경우 byte[] data = File.ReadAllBytes(filepath);를 사용하시면 됩니다.
    Source가 url인 경우엔,

    public async Task<byte[]> ConvertImageSourceToBytesAsync(string aURL)
            {
                HttpWebRequest aRequest = (HttpWebRequest)WebRequest.Create(aURL);
                HttpWebResponse aResponse = (HttpWebResponse)aRequest.GetResponse();
                Stream stream = aResponse.GetResponseStream();        
                byte[] bytesAvailable = new byte[stream.Length];
                stream.Read(bytesAvailable, 0, bytesAvailable.Length);
     
     
               return bytesAvailable;
            }  
    

    답변이 도움이 되였으면 합니다, 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해 주시기 바랍니다.
    감사합니다.

    MSDN Community Support Elin

     다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    • 답변으로 표시됨 cosmoin 2023년 2월 22일 수요일 오전 10:00
    2023년 2월 22일 수요일 오전 5:56
    중재자

모든 응답

  • 안녕하십니까 @ cosmoin 님
    MSDN 포럼에 질문 주셔서 감사합니다.

    ImageSource는 스트림이나 byte[]를 직접 획득하기 위한 어떠한 메커니즘도 노출하지 않기 때문에 Image의 Source로부터 만 획득할 수 있습니다.
    Source가 Local File인 경우 byte[] data = File.ReadAllBytes(filepath);를 사용하시면 됩니다.
    Source가 url인 경우엔,

    public async Task<byte[]> ConvertImageSourceToBytesAsync(string aURL)
            {
                HttpWebRequest aRequest = (HttpWebRequest)WebRequest.Create(aURL);
                HttpWebResponse aResponse = (HttpWebResponse)aRequest.GetResponse();
                Stream stream = aResponse.GetResponseStream();        
                byte[] bytesAvailable = new byte[stream.Length];
                stream.Read(bytesAvailable, 0, bytesAvailable.Length);
     
     
               return bytesAvailable;
            }  
    

    답변이 도움이 되였으면 합니다, 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해 주시기 바랍니다.
    감사합니다.

    MSDN Community Support Elin

     다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    • 답변으로 표시됨 cosmoin 2023년 2월 22일 수요일 오전 10:00
    2023년 2월 22일 수요일 오전 5:56
    중재자
  • 그렇군요.

    감사합니다.

    2023년 2월 22일 수요일 오전 10:01