Sembra esserci una dimensione massima per le immagini uri dei dati, tuttavia il tuo codice iniziale mi sembra buono e non genera un errore interno del server esplicito (come sarebbe se il datauri fosse troppo grande).
Ho implementato qualcosa di simile:
var reply = message.CreateReply("Here's a **datauri image attachment**");
reply.Attachments = new List<Attachment> {
new Attachment()
{
ContentUrl = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAQABADAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACAUH/8QAJhAAAQMDAwQCAwAAAAAAAAAAAQIDBQQGEQcIEgATISIUMRUjUf/EABYBAQEBAAAAAAAAAAAAAAAAAAMBBP/EAB8RAAICAQQDAAAAAAAAAAAAAAECAAMRBBITIiFB8P/aAAwDAQACEQMRAD8AubjdVbtj5cQFi3tX2lS/ka16Rko9pZqHHfklplgKAylJPNR/vEZPWyvTpUN7jMyK3M21fE03ZLuQ1Gmbyc0j1Dudq7o8RztXFzXEGtacZeQhxipKT7D9qcKUOQ+skfRWKrdqxj71HI4erHME97633Fc+pF10c64pIg7ll6CldoEcHEoTVL7fMZ9se2CPOekdkCiSjIYmLvYvMRdLQPXDG3FGSEzK1iKB4rYCnaan7oVwcCQCHVqGTkkeEefGOgbTtjccyW6sM4QAT//Z",
ContentType = "image/jpg",
Name = "datauri"
}
};
che si traduce in l'emulatore che mostra questa immagine (ho bisogno di più rep per incorporare immagini .. ugh ..)
Aggiornamento : una versione data uri di un'immagine da ~ 20kb funziona bene, tuttavia una versione di dati uri di un'immagine da ~ 140kb non riesce con un "500 internalservererror" nell'emulatore. Presumo che c'è un limite di dimensione, dopo tutto ..
Come tale, si può verificare che egli datauri si sta utilizzando è un'immagine valida? Puoi creare una semplice pagina html con un elemento img, incollare il valore in ContentUrl e vedere l'immagine nella pagina html? O anche semplicemente incollarlo in una barra degli indirizzi del browser.
Non riesco a visualizzare l'immagine nell'emulatore, inoltre ImagesUrl può essere sostituito dall'URL di dati non elaborati (base 64), perché voglio visualizzare un'immagine data base64 –
Puoi convertire quella stringa come immagine e usare quel collegamento. – SilentCoder
Non voglio memorizzare l'immagine per motivi di privacy, non posso specificare direttamente base64? –