Skip to content

Commit 93fcbae

Browse files
committed
use websave to avoid errors with imread from DALL•E URLs
1 parent a29429d commit 93fcbae

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

openAIImages.m

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ function mustBeValidSize(this, imagesize)
298298
% Output the images
299299
if isfield(response.Body.Data.data,"url")
300300
urls = arrayfun(@(x) string(x.url), response.Body.Data.data);
301-
images = arrayfun(@imread,urls,UniformOutput=false);
301+
images = arrayfun(@myImread,urls,UniformOutput=false);
302302
else
303303
images = [];
304304
end
@@ -357,4 +357,14 @@ function mustBeValidFileType(filePath)
357357
function mustBeNonzeroLengthTextScalar(content)
358358
mustBeNonzeroLengthText(content)
359359
mustBeTextScalar(content)
360-
end
360+
end
361+
362+
function data = myImread(URI)
363+
% imread usually, but not always, fails to read from the
364+
% https://oaidalleapiprodscus.blob.core.windows.net URLs returned by
365+
% DALL•E. Use websave instead.
366+
filename = tempname + ".png";
367+
clean = onCleanup(@() delete(filename));
368+
websave(filename,URI);
369+
data = imread(filename);
370+
end

0 commit comments

Comments
 (0)