@@ -3,7 +3,7 @@ const serverBaseUrl = "https://randou.liris.cnrs.fr/vizapi/descript-sketches/"
33let username = ""
44let password = ""
55let credentials = ""
6- let useServer = false
6+ let useServer = true
77let imgList
88
99async function getPaletteList ( ) {
@@ -12,13 +12,14 @@ async function getPaletteList() {
1212
1313
1414 for ( const [ key , value ] of Object . entries ( palettes ) ) {
15-
15+ console . log ( value . name ) ;
1616 let t = await loadStateFromJson ( serverBaseUrl + "palettes/" + value . name )
1717
18- console . log ( t ) ;
1918
2019 if ( ! t . preloadName ) {
21- t . originImg = await getImage ( t . originImg )
20+ // console.log(t.originImg);
21+ // if (!t.originImg.includes("Giorgia_DearData_47_Back"))
22+ t . originImg = await getImage ( t . originImg )
2223 } else {
2324 if ( t . preloadName !== "" ) {
2425 t . originImg = preload [ t . preloadName ] ;
@@ -69,14 +70,15 @@ async function uploadPalette(palette, name) {
6970 if ( tfileName !== "" ) {
7071
7172 if ( ! imgList . map ( d => d . name ) . includes ( tfileName ) ) {
72-
73- pushImage ( palette . originImg , tfileName )
73+ await pushImage ( palette . originImg , tfileName )
7474
7575 }
76- tt . originImg = serverBaseUrl + "images/" + tfileName + ".png"
76+ tt . originImg = serverBaseUrl + "images/" + tfileName
7777 }
7878 } else {
79- tt . originImg = serverBaseUrl + "images/" + name + ".png"
79+ console . log ( tt . originImg ) ;
80+ // await pushImage(palette.originImg, name)
81+ tt . originImg = currImg . src
8082 }
8183 }
8284
@@ -99,8 +101,56 @@ async function uploadPalette(palette, name) {
99101 } )
100102}
101103
104+ async function pushImage ( img , name ) {
105+ if ( credentials === "" ) {
106+ await login ( ) ;
107+ }
108+ img . crossOrigin = "anonymous" ;
109+
110+
111+
112+ const MAX_SIZE = 1024 ;
113+
114+ let width = img . naturalWidth ;
115+ let height = img . naturalHeight ;
116+
117+ if ( width > MAX_SIZE || height > MAX_SIZE ) {
118+ const scale = Math . min (
119+ MAX_SIZE / width ,
120+ MAX_SIZE / height
121+ ) ;
122+
123+ width = Math . round ( width * scale ) ;
124+ height = Math . round ( height * scale ) ;
125+ }
126+
127+ const canvas = document . createElement ( "canvas" ) ;
128+ canvas . width = width ;
129+ canvas . height = height ;
130+
131+ const ctx = canvas . getContext ( "2d" ) ;
132+ ctx . drawImage ( img , 0 , 0 , width , height ) ;
133+
134+
135+ const blob = await new Promise ( resolve =>
136+ canvas . toBlob ( resolve , "image/png" )
137+ ) ;
138+
139+ const data = new FormData ( ) ;
140+ data . append ( "file" , blob , name + ".png" ) ;
141+
142+ await fetch ( serverBaseUrl + "images" , {
143+ method : "POST" ,
144+ headers : {
145+ "Authorization" : `Basic ${ credentials } ` ,
146+ } ,
147+ body : data
148+ } ) ;
149+ }
150+
102151
103- function pushImage ( img , name ) {
152+ /*
153+ async function pushImage(img, name) {
104154
105155 if (credentials === "") {
106156 login()
@@ -111,26 +161,20 @@ function pushImage(img, name) {
111161
112162 const blob = new Blob([img], {type: 'image/png'})
113163
114- /*
115- data.append('file', {
116- uri: img.src,
117- name: name + "png",
118- type: 'image/png',
119- })
120- */
121-
122164
123165 data.append(
124166 "file",
125167 blob,
126168 name + ".png"
127169 );
128170
129- fetch ( serverBaseUrl + "images" , {
171+ await fetch(serverBaseUrl + "images", {
130172 method: 'POST',
131173 headers: {
132174 "Authorization": `Basic ${credentials}`,
133175 },
134176 body: data
135177 })
136- }
178+
179+
180+ }*/
0 commit comments