Data URI 支持(EPUB)

pull/1614/head
131 3 years ago
parent 082e088eb4
commit 213196d26c
  1. 15
      epublib/src/main/java/me/ag2s/epublib/domain/Resources.java

@ -10,6 +10,9 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.util.Base64;
/**
* All the resources that make up the book.
@ -314,7 +317,17 @@ public class Resources implements Serializable {
return null;
}
href = StringUtil.substringBefore(href, Constants.FRAGMENT_SEPARATOR_CHAR);
return resources.get(href);
Pattern dataUriRegex = Pattern.compile("data:([\\w/\\-\\.]+);base64,(.*)");
Matcher dataUriMatcher = dataUriRegex.matcher(href);
if (dataUriMatcher.find()) {
String dataUriMediaTypeString = dataUriMatcher.group(1);
MediaType dataUriMediaType = new MediaType(dataUriMediaTypeString, "." + StringUtil.substringAfterLast(dataUriMediaTypeString, '/'));
byte[] dataUriData = Base64.decode(dataUriMatcher.group(2), Base64.DEFAULT);
return new Resource(dataUriData, dataUriMediaType);
} else {
return resources.get(href);
}
}
/**

Loading…
Cancel
Save