11import cache
2- import gleam/bit_array
32import gleam/int
43import gleam/list
54import gleam/option . { Some }
@@ -10,16 +9,20 @@ type XmlImages {
109 XmlImages ( xml : String , width : Int , height : Int )
1110}
1211
13- fn image ( data , image : image . ImageInformation , width ) {
14- "<image
15- height=\" " <> int . to_string ( image . height ) <> "\"
16- width=\" " <> int . to_string ( image . width ) <> "\"
17- x=\" " <> int . to_string ( width ) <> "\"
18- y=\" 0\"
19- xlink:href=\" data:image/" <> image . extension <> ";base64," <> bit_array . base64_encode (
20- data ,
21- False ,
22- ) <> "\" />"
12+ fn image ( base64 , image : image . ImageInformation , width ) {
13+ string_builder . new ( )
14+ |> string_builder . append ( "<image height=\" " )
15+ |> string_builder . append ( int . to_string ( image . height ) )
16+ |> string_builder . append ( "\" width=\" " )
17+ |> string_builder . append ( int . to_string ( image . width ) )
18+ |> string_builder . append ( "\" x=\" " )
19+ |> string_builder . append ( int . to_string ( width ) )
20+ |> string_builder . append ( "\" y=\" 0\" xlink:href=\" data:image/" )
21+ |> string_builder . append ( image . extension )
22+ |> string_builder . append ( ";base64," )
23+ |> string_builder . append ( base64 )
24+ |> string_builder . append ( "\" />" )
25+ |> string_builder . to_string ( )
2326}
2427
2528fn images ( image_cache , theme , digits , width , height , svgs ) {
@@ -34,7 +37,10 @@ fn images(image_cache, theme, digits, width, height, svgs) {
3437 rest ,
3538 width + cached . info . width ,
3639 int . max ( height , cached . info . height ) ,
37- string_builder . append ( svgs , image ( cached . data , cached . info , width ) ) ,
40+ string_builder . append (
41+ svgs ,
42+ image ( cached . base64 , cached . info , width ) ,
43+ ) ,
3844 )
3945 _ -> images ( image_cache , theme , rest , width , height , svgs )
4046 }
@@ -60,17 +66,19 @@ pub fn xml(image_cache, theme, number, padding) {
6066 string_builder . new ( ) ,
6167 )
6268
63- "<?xml version=\" 1.0\" encoding=\" ISO-8859-1\" ?>
64- <svg
65- height=\" " <> int . to_string ( xml . height ) <> "\"
66- style=\" image-rendering: pixelated;\"
67- version=\" 1.1\"
68- width=\" " <> int . to_string ( xml . width ) <> "\"
69- xmlns=\" http://www.w3.org/2000/svg\"
70- xmlns:xlink=\" http://www.w3.org/1999/xlink\"
71- >
72- <title>Mayu</title>
73-
74- <g>" <> xml . xml <> "</g>
75- </svg>"
69+ string_builder . new ( )
70+ |> string_builder . append (
71+ "<?xml version=\" 1.0\" encoding=\" ISO-8859-1\" ?><svg height=\" " ,
72+ )
73+ |> string_builder . append ( int . to_string ( xml . height ) )
74+ |> string_builder . append (
75+ "\" style=\" image-rendering: pixelated;\" version=\" 1.1\" width=\" " ,
76+ )
77+ |> string_builder . append ( int . to_string ( xml . width ) )
78+ |> string_builder . append (
79+ "\" xmlns=\" http://www.w3.org/2000/svg\" xmlns:xlink=\" http://www.w3.org/1999/xlink\" ><title>Mayu</title><g>" ,
80+ )
81+ |> string_builder . append ( xml . xml )
82+ |> string_builder . append ( "</g></svg>" )
83+ |> string_builder . to_string ( )
7684}
0 commit comments