bitmap conversion to webp gives signal 11










2















My Android app gives me this error when I am converting a bitmap to WEBP format:



 #00 pc 00000000004125c4 /system/lib/libskia.so
#01 pc 000000000042e350 /system/lib/libskia.so
#02 pc 000000000042db78 /system/lib/libskia.so
#03 pc 000000000042dc60 /system/lib/libskia.so (WebPPictureImportRGBA+36)
#04 pc 00000000003a1fd0 /system/lib/libskia.so (_ZN18SkWEBPImageEncoder8onEncodeEP9SkWStreamRK8SkBitmapi+444)
#05 pc 00000000000a216f /system/lib/libandroid_runtime.so
#06 pc 0000000001aabea3 /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.nativeCompress+158)
#07 pc 0000000001aad39b /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.compress+230)
#08 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#09 pc 00000000004087e1 /system/lib/libart.so (art_quick_invoke_stub+232)
#10 pc 00000000000b1115 /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
#11 pc 00000000001ef3fd /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
#12 pc 00000000001e99ad /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
#13 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#14 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#15 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#16 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#17 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#18 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#19 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#20 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#21 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#22 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#23 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#24 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#25 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#26 pc 00000000001d0f35 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
#27 pc 00000000003f7bb3 /system/lib/libart.so (artQuickToInterpreterBridge+706)
#28 pc 00000000000ae893 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
#29 pc 000000000208fc09 /system/framework/arm/boot-framework.oat (android.view.View.performClick+276)
#30 pc 0000000002109f95 /system/framework/arm/boot-framework.oat (android.view.View$PerformClick.run+40)
#31 pc 000000000182fbe5 /system/framework/arm/boot-framework.oat (android.os.Handler.handleCallback+48)
#32 pc 000000000182fc43 /system/framework/arm/boot-framework.oat (android.os.Handler.dispatchMessage+54)
#33 pc 0000000001e24e39 /system/framework/arm/boot-framework.oat (android.os.Looper.loop+1948)
#34 pc 00000000018445f3 /system/framework/arm/boot-framework.oat (android.app.ActivityThread.main+814)
#35 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#36 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#37 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#38 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#39 pc 000000000031a0b3 /system/lib/libart.so (_ZN3art12InvokeMethodERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectS4_S4_j+766)
#40 pc 00000000002c12d5 /system/lib/libart.so (_ZN3artL13Method_invokeEP7_JNIEnvP8_jobjectS3_S3_+40)
#41 pc 00000000005ae931 /system/framework/arm/boot-core-oj.oat (java.lang.reflect.Method.invoke+116)
#42 pc 000000000236cf89 /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run+100)
#43 pc 000000000236e3df /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit.main+1978)
#44 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#45 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#46 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#47 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#48 pc 0000000000318b33 /system/lib/libart.so (_ZN3art17InvokeWithVarArgsERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectP10_jmethodIDSt9__va_list+266)
#49 pc 000000000027b61f /system/lib/libart.so (_ZN3art3JNI21CallStaticVoidMethodVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+426)
#50 pc 000000000006837d /system/lib/libandroid_runtime.so
#51 pc 0000000000069c63 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime5startEPKcRKNS_6VectorINS_7String8EEEb+498)
#52 pc 000000000000199f /system/bin/app_process32
#53 pc 0000000000016d8d /system/lib/libc.so (__libc_init+48)
#54 pc 00000000000015bc /system/bin/app_process32


I don't know exactly where that error occurs but my guess is when I try to compress a bitmap to the WEBP format in here:



public String saveImage(String id, Bitmap bitmap) 
if(bitmap != null)
File folder = new File(getFilesDir() + "/packs", id);
if (!folder.exists())
folder.mkdirs();
String stickerName = "sticker" + String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())) + ".webp";
File filename = new File(folder, stickerName);
try
if (!filename.exists())
filename.createNewFile();
FileOutputStream out = new FileOutputStream(filename);
bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out);
out.close();
catch (Exception e)
e.printStackTrace();

return stickerName;
else
return null;




The bitmap is created inside a custom view of mine and than saved as WEBP, but it gives me an error every time I try. As I said I don't know how to debug this error message so if I am totally wrong please say.



Thanks in advance!










share|improve this question
























  • Hey! I've got the same error on some of the devices. Will keep posted if I find something useful

    – Evgeny Nacu
    Nov 14 '18 at 6:37















2















My Android app gives me this error when I am converting a bitmap to WEBP format:



 #00 pc 00000000004125c4 /system/lib/libskia.so
#01 pc 000000000042e350 /system/lib/libskia.so
#02 pc 000000000042db78 /system/lib/libskia.so
#03 pc 000000000042dc60 /system/lib/libskia.so (WebPPictureImportRGBA+36)
#04 pc 00000000003a1fd0 /system/lib/libskia.so (_ZN18SkWEBPImageEncoder8onEncodeEP9SkWStreamRK8SkBitmapi+444)
#05 pc 00000000000a216f /system/lib/libandroid_runtime.so
#06 pc 0000000001aabea3 /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.nativeCompress+158)
#07 pc 0000000001aad39b /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.compress+230)
#08 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#09 pc 00000000004087e1 /system/lib/libart.so (art_quick_invoke_stub+232)
#10 pc 00000000000b1115 /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
#11 pc 00000000001ef3fd /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
#12 pc 00000000001e99ad /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
#13 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#14 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#15 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#16 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#17 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#18 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#19 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#20 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#21 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#22 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#23 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#24 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#25 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#26 pc 00000000001d0f35 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
#27 pc 00000000003f7bb3 /system/lib/libart.so (artQuickToInterpreterBridge+706)
#28 pc 00000000000ae893 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
#29 pc 000000000208fc09 /system/framework/arm/boot-framework.oat (android.view.View.performClick+276)
#30 pc 0000000002109f95 /system/framework/arm/boot-framework.oat (android.view.View$PerformClick.run+40)
#31 pc 000000000182fbe5 /system/framework/arm/boot-framework.oat (android.os.Handler.handleCallback+48)
#32 pc 000000000182fc43 /system/framework/arm/boot-framework.oat (android.os.Handler.dispatchMessage+54)
#33 pc 0000000001e24e39 /system/framework/arm/boot-framework.oat (android.os.Looper.loop+1948)
#34 pc 00000000018445f3 /system/framework/arm/boot-framework.oat (android.app.ActivityThread.main+814)
#35 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#36 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#37 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#38 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#39 pc 000000000031a0b3 /system/lib/libart.so (_ZN3art12InvokeMethodERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectS4_S4_j+766)
#40 pc 00000000002c12d5 /system/lib/libart.so (_ZN3artL13Method_invokeEP7_JNIEnvP8_jobjectS3_S3_+40)
#41 pc 00000000005ae931 /system/framework/arm/boot-core-oj.oat (java.lang.reflect.Method.invoke+116)
#42 pc 000000000236cf89 /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run+100)
#43 pc 000000000236e3df /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit.main+1978)
#44 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#45 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#46 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#47 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#48 pc 0000000000318b33 /system/lib/libart.so (_ZN3art17InvokeWithVarArgsERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectP10_jmethodIDSt9__va_list+266)
#49 pc 000000000027b61f /system/lib/libart.so (_ZN3art3JNI21CallStaticVoidMethodVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+426)
#50 pc 000000000006837d /system/lib/libandroid_runtime.so
#51 pc 0000000000069c63 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime5startEPKcRKNS_6VectorINS_7String8EEEb+498)
#52 pc 000000000000199f /system/bin/app_process32
#53 pc 0000000000016d8d /system/lib/libc.so (__libc_init+48)
#54 pc 00000000000015bc /system/bin/app_process32


I don't know exactly where that error occurs but my guess is when I try to compress a bitmap to the WEBP format in here:



public String saveImage(String id, Bitmap bitmap) 
if(bitmap != null)
File folder = new File(getFilesDir() + "/packs", id);
if (!folder.exists())
folder.mkdirs();
String stickerName = "sticker" + String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())) + ".webp";
File filename = new File(folder, stickerName);
try
if (!filename.exists())
filename.createNewFile();
FileOutputStream out = new FileOutputStream(filename);
bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out);
out.close();
catch (Exception e)
e.printStackTrace();

return stickerName;
else
return null;




The bitmap is created inside a custom view of mine and than saved as WEBP, but it gives me an error every time I try. As I said I don't know how to debug this error message so if I am totally wrong please say.



Thanks in advance!










share|improve this question
























  • Hey! I've got the same error on some of the devices. Will keep posted if I find something useful

    – Evgeny Nacu
    Nov 14 '18 at 6:37













2












2








2








My Android app gives me this error when I am converting a bitmap to WEBP format:



 #00 pc 00000000004125c4 /system/lib/libskia.so
#01 pc 000000000042e350 /system/lib/libskia.so
#02 pc 000000000042db78 /system/lib/libskia.so
#03 pc 000000000042dc60 /system/lib/libskia.so (WebPPictureImportRGBA+36)
#04 pc 00000000003a1fd0 /system/lib/libskia.so (_ZN18SkWEBPImageEncoder8onEncodeEP9SkWStreamRK8SkBitmapi+444)
#05 pc 00000000000a216f /system/lib/libandroid_runtime.so
#06 pc 0000000001aabea3 /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.nativeCompress+158)
#07 pc 0000000001aad39b /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.compress+230)
#08 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#09 pc 00000000004087e1 /system/lib/libart.so (art_quick_invoke_stub+232)
#10 pc 00000000000b1115 /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
#11 pc 00000000001ef3fd /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
#12 pc 00000000001e99ad /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
#13 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#14 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#15 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#16 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#17 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#18 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#19 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#20 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#21 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#22 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#23 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#24 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#25 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#26 pc 00000000001d0f35 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
#27 pc 00000000003f7bb3 /system/lib/libart.so (artQuickToInterpreterBridge+706)
#28 pc 00000000000ae893 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
#29 pc 000000000208fc09 /system/framework/arm/boot-framework.oat (android.view.View.performClick+276)
#30 pc 0000000002109f95 /system/framework/arm/boot-framework.oat (android.view.View$PerformClick.run+40)
#31 pc 000000000182fbe5 /system/framework/arm/boot-framework.oat (android.os.Handler.handleCallback+48)
#32 pc 000000000182fc43 /system/framework/arm/boot-framework.oat (android.os.Handler.dispatchMessage+54)
#33 pc 0000000001e24e39 /system/framework/arm/boot-framework.oat (android.os.Looper.loop+1948)
#34 pc 00000000018445f3 /system/framework/arm/boot-framework.oat (android.app.ActivityThread.main+814)
#35 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#36 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#37 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#38 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#39 pc 000000000031a0b3 /system/lib/libart.so (_ZN3art12InvokeMethodERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectS4_S4_j+766)
#40 pc 00000000002c12d5 /system/lib/libart.so (_ZN3artL13Method_invokeEP7_JNIEnvP8_jobjectS3_S3_+40)
#41 pc 00000000005ae931 /system/framework/arm/boot-core-oj.oat (java.lang.reflect.Method.invoke+116)
#42 pc 000000000236cf89 /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run+100)
#43 pc 000000000236e3df /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit.main+1978)
#44 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#45 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#46 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#47 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#48 pc 0000000000318b33 /system/lib/libart.so (_ZN3art17InvokeWithVarArgsERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectP10_jmethodIDSt9__va_list+266)
#49 pc 000000000027b61f /system/lib/libart.so (_ZN3art3JNI21CallStaticVoidMethodVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+426)
#50 pc 000000000006837d /system/lib/libandroid_runtime.so
#51 pc 0000000000069c63 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime5startEPKcRKNS_6VectorINS_7String8EEEb+498)
#52 pc 000000000000199f /system/bin/app_process32
#53 pc 0000000000016d8d /system/lib/libc.so (__libc_init+48)
#54 pc 00000000000015bc /system/bin/app_process32


I don't know exactly where that error occurs but my guess is when I try to compress a bitmap to the WEBP format in here:



public String saveImage(String id, Bitmap bitmap) 
if(bitmap != null)
File folder = new File(getFilesDir() + "/packs", id);
if (!folder.exists())
folder.mkdirs();
String stickerName = "sticker" + String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())) + ".webp";
File filename = new File(folder, stickerName);
try
if (!filename.exists())
filename.createNewFile();
FileOutputStream out = new FileOutputStream(filename);
bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out);
out.close();
catch (Exception e)
e.printStackTrace();

return stickerName;
else
return null;




The bitmap is created inside a custom view of mine and than saved as WEBP, but it gives me an error every time I try. As I said I don't know how to debug this error message so if I am totally wrong please say.



Thanks in advance!










share|improve this question
















My Android app gives me this error when I am converting a bitmap to WEBP format:



 #00 pc 00000000004125c4 /system/lib/libskia.so
#01 pc 000000000042e350 /system/lib/libskia.so
#02 pc 000000000042db78 /system/lib/libskia.so
#03 pc 000000000042dc60 /system/lib/libskia.so (WebPPictureImportRGBA+36)
#04 pc 00000000003a1fd0 /system/lib/libskia.so (_ZN18SkWEBPImageEncoder8onEncodeEP9SkWStreamRK8SkBitmapi+444)
#05 pc 00000000000a216f /system/lib/libandroid_runtime.so
#06 pc 0000000001aabea3 /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.nativeCompress+158)
#07 pc 0000000001aad39b /system/framework/arm/boot-framework.oat (android.graphics.Bitmap.compress+230)
#08 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#09 pc 00000000004087e1 /system/lib/libart.so (art_quick_invoke_stub+232)
#10 pc 00000000000b1115 /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
#11 pc 00000000001ef3fd /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
#12 pc 00000000001e99ad /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
#13 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#14 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#15 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#16 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#17 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#18 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#19 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#20 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#21 pc 00000000001d0fcb /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
#22 pc 00000000001e9993 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
#23 pc 0000000000402bb3 /system/lib/libart.so (MterpInvokeVirtualQuick+322)
#24 pc 00000000000a0a14 /system/lib/libart.so (ExecuteMterpImpl+29972)
#25 pc 00000000001cc463 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
#26 pc 00000000001d0f35 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
#27 pc 00000000003f7bb3 /system/lib/libart.so (artQuickToInterpreterBridge+706)
#28 pc 00000000000ae893 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
#29 pc 000000000208fc09 /system/framework/arm/boot-framework.oat (android.view.View.performClick+276)
#30 pc 0000000002109f95 /system/framework/arm/boot-framework.oat (android.view.View$PerformClick.run+40)
#31 pc 000000000182fbe5 /system/framework/arm/boot-framework.oat (android.os.Handler.handleCallback+48)
#32 pc 000000000182fc43 /system/framework/arm/boot-framework.oat (android.os.Handler.dispatchMessage+54)
#33 pc 0000000001e24e39 /system/framework/arm/boot-framework.oat (android.os.Looper.loop+1948)
#34 pc 00000000018445f3 /system/framework/arm/boot-framework.oat (android.app.ActivityThread.main+814)
#35 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#36 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#37 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#38 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#39 pc 000000000031a0b3 /system/lib/libart.so (_ZN3art12InvokeMethodERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectS4_S4_j+766)
#40 pc 00000000002c12d5 /system/lib/libart.so (_ZN3artL13Method_invokeEP7_JNIEnvP8_jobjectS3_S3_+40)
#41 pc 00000000005ae931 /system/framework/arm/boot-core-oj.oat (java.lang.reflect.Method.invoke+116)
#42 pc 000000000236cf89 /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run+100)
#43 pc 000000000236e3df /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit.main+1978)
#44 pc 00000000000a9e41 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#45 pc 00000000004088e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
#46 pc 00000000000b113f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
#47 pc 0000000000318d21 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+56)
#48 pc 0000000000318b33 /system/lib/libart.so (_ZN3art17InvokeWithVarArgsERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectP10_jmethodIDSt9__va_list+266)
#49 pc 000000000027b61f /system/lib/libart.so (_ZN3art3JNI21CallStaticVoidMethodVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+426)
#50 pc 000000000006837d /system/lib/libandroid_runtime.so
#51 pc 0000000000069c63 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime5startEPKcRKNS_6VectorINS_7String8EEEb+498)
#52 pc 000000000000199f /system/bin/app_process32
#53 pc 0000000000016d8d /system/lib/libc.so (__libc_init+48)
#54 pc 00000000000015bc /system/bin/app_process32


I don't know exactly where that error occurs but my guess is when I try to compress a bitmap to the WEBP format in here:



public String saveImage(String id, Bitmap bitmap) 
if(bitmap != null)
File folder = new File(getFilesDir() + "/packs", id);
if (!folder.exists())
folder.mkdirs();
String stickerName = "sticker" + String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())) + ".webp";
File filename = new File(folder, stickerName);
try
if (!filename.exists())
filename.createNewFile();
FileOutputStream out = new FileOutputStream(filename);
bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out);
out.close();
catch (Exception e)
e.printStackTrace();

return stickerName;
else
return null;




The bitmap is created inside a custom view of mine and than saved as WEBP, but it gives me an error every time I try. As I said I don't know how to debug this error message so if I am totally wrong please say.



Thanks in advance!







android bitmap webp






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 16:14









Fantômas

32.4k156388




32.4k156388










asked Nov 13 '18 at 15:28









smovie9smovie9

1451212




1451212












  • Hey! I've got the same error on some of the devices. Will keep posted if I find something useful

    – Evgeny Nacu
    Nov 14 '18 at 6:37

















  • Hey! I've got the same error on some of the devices. Will keep posted if I find something useful

    – Evgeny Nacu
    Nov 14 '18 at 6:37
















Hey! I've got the same error on some of the devices. Will keep posted if I find something useful

– Evgeny Nacu
Nov 14 '18 at 6:37





Hey! I've got the same error on some of the devices. Will keep posted if I find something useful

– Evgeny Nacu
Nov 14 '18 at 6:37












2 Answers
2






active

oldest

votes


















1














So I ended up using libwebp instead of Bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out); and it now works fine. Here is a tutorial on how to use libwebp http://masashi-k.blogspot.com/2014/02/webp-in-android.html.






share|improve this answer























  • You didn't have any errors following that tutorial ? Did you use Eclipse or Android Studio? I can't get it to work :(

    – GabrielBB
    Nov 19 '18 at 16:19


















0














EDIT: It ended up giving me the same error. I will just try the solution you posted.



Add Android Compressor Library to your build.gradle and copy and paste this function (if you have a Bitmap)



public static void saveBitmap(String folder, String imageName, Bitmap bitmap, Context context) throws IOException 
File temp = new File(folder, "temp_" + imageName);

try (OutputStream stream = new FileOutputStream(temp))
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);


new Compressor(context)
.setQuality(90)
.setCompressFormat(Bitmap.CompressFormat.WEBP)
.setDestinationDirectoryPath(folder) // Saving in the same folder temp file is at
.compressToFile(temp, imageName); // Takes the temp file and creates a new one with the name passed as second argument

temp.delete(); // Deleting temp file




If you are wondering why i'm saving a temporary PNG file before saving the desired WEBP, it's because that library doesn't take a Bitmap as argument, it only works with File.



The library logs an error saying "the file should be a JPEG" but it is working fine so far anyway, the PNG alpha channel is being kept in the WEBP so i'm ignoring that error.






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284295%2fbitmap-conversion-to-webp-gives-signal-11%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    So I ended up using libwebp instead of Bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out); and it now works fine. Here is a tutorial on how to use libwebp http://masashi-k.blogspot.com/2014/02/webp-in-android.html.






    share|improve this answer























    • You didn't have any errors following that tutorial ? Did you use Eclipse or Android Studio? I can't get it to work :(

      – GabrielBB
      Nov 19 '18 at 16:19















    1














    So I ended up using libwebp instead of Bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out); and it now works fine. Here is a tutorial on how to use libwebp http://masashi-k.blogspot.com/2014/02/webp-in-android.html.






    share|improve this answer























    • You didn't have any errors following that tutorial ? Did you use Eclipse or Android Studio? I can't get it to work :(

      – GabrielBB
      Nov 19 '18 at 16:19













    1












    1








    1







    So I ended up using libwebp instead of Bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out); and it now works fine. Here is a tutorial on how to use libwebp http://masashi-k.blogspot.com/2014/02/webp-in-android.html.






    share|improve this answer













    So I ended up using libwebp instead of Bitmap.compress(Bitmap.CompressFormat.WEBP, 100, out); and it now works fine. Here is a tutorial on how to use libwebp http://masashi-k.blogspot.com/2014/02/webp-in-android.html.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 14 '18 at 15:47









    smovie9smovie9

    1451212




    1451212












    • You didn't have any errors following that tutorial ? Did you use Eclipse or Android Studio? I can't get it to work :(

      – GabrielBB
      Nov 19 '18 at 16:19

















    • You didn't have any errors following that tutorial ? Did you use Eclipse or Android Studio? I can't get it to work :(

      – GabrielBB
      Nov 19 '18 at 16:19
















    You didn't have any errors following that tutorial ? Did you use Eclipse or Android Studio? I can't get it to work :(

    – GabrielBB
    Nov 19 '18 at 16:19





    You didn't have any errors following that tutorial ? Did you use Eclipse or Android Studio? I can't get it to work :(

    – GabrielBB
    Nov 19 '18 at 16:19













    0














    EDIT: It ended up giving me the same error. I will just try the solution you posted.



    Add Android Compressor Library to your build.gradle and copy and paste this function (if you have a Bitmap)



    public static void saveBitmap(String folder, String imageName, Bitmap bitmap, Context context) throws IOException 
    File temp = new File(folder, "temp_" + imageName);

    try (OutputStream stream = new FileOutputStream(temp))
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);


    new Compressor(context)
    .setQuality(90)
    .setCompressFormat(Bitmap.CompressFormat.WEBP)
    .setDestinationDirectoryPath(folder) // Saving in the same folder temp file is at
    .compressToFile(temp, imageName); // Takes the temp file and creates a new one with the name passed as second argument

    temp.delete(); // Deleting temp file




    If you are wondering why i'm saving a temporary PNG file before saving the desired WEBP, it's because that library doesn't take a Bitmap as argument, it only works with File.



    The library logs an error saying "the file should be a JPEG" but it is working fine so far anyway, the PNG alpha channel is being kept in the WEBP so i'm ignoring that error.






    share|improve this answer





























      0














      EDIT: It ended up giving me the same error. I will just try the solution you posted.



      Add Android Compressor Library to your build.gradle and copy and paste this function (if you have a Bitmap)



      public static void saveBitmap(String folder, String imageName, Bitmap bitmap, Context context) throws IOException 
      File temp = new File(folder, "temp_" + imageName);

      try (OutputStream stream = new FileOutputStream(temp))
      bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);


      new Compressor(context)
      .setQuality(90)
      .setCompressFormat(Bitmap.CompressFormat.WEBP)
      .setDestinationDirectoryPath(folder) // Saving in the same folder temp file is at
      .compressToFile(temp, imageName); // Takes the temp file and creates a new one with the name passed as second argument

      temp.delete(); // Deleting temp file




      If you are wondering why i'm saving a temporary PNG file before saving the desired WEBP, it's because that library doesn't take a Bitmap as argument, it only works with File.



      The library logs an error saying "the file should be a JPEG" but it is working fine so far anyway, the PNG alpha channel is being kept in the WEBP so i'm ignoring that error.






      share|improve this answer



























        0












        0








        0







        EDIT: It ended up giving me the same error. I will just try the solution you posted.



        Add Android Compressor Library to your build.gradle and copy and paste this function (if you have a Bitmap)



        public static void saveBitmap(String folder, String imageName, Bitmap bitmap, Context context) throws IOException 
        File temp = new File(folder, "temp_" + imageName);

        try (OutputStream stream = new FileOutputStream(temp))
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);


        new Compressor(context)
        .setQuality(90)
        .setCompressFormat(Bitmap.CompressFormat.WEBP)
        .setDestinationDirectoryPath(folder) // Saving in the same folder temp file is at
        .compressToFile(temp, imageName); // Takes the temp file and creates a new one with the name passed as second argument

        temp.delete(); // Deleting temp file




        If you are wondering why i'm saving a temporary PNG file before saving the desired WEBP, it's because that library doesn't take a Bitmap as argument, it only works with File.



        The library logs an error saying "the file should be a JPEG" but it is working fine so far anyway, the PNG alpha channel is being kept in the WEBP so i'm ignoring that error.






        share|improve this answer















        EDIT: It ended up giving me the same error. I will just try the solution you posted.



        Add Android Compressor Library to your build.gradle and copy and paste this function (if you have a Bitmap)



        public static void saveBitmap(String folder, String imageName, Bitmap bitmap, Context context) throws IOException 
        File temp = new File(folder, "temp_" + imageName);

        try (OutputStream stream = new FileOutputStream(temp))
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);


        new Compressor(context)
        .setQuality(90)
        .setCompressFormat(Bitmap.CompressFormat.WEBP)
        .setDestinationDirectoryPath(folder) // Saving in the same folder temp file is at
        .compressToFile(temp, imageName); // Takes the temp file and creates a new one with the name passed as second argument

        temp.delete(); // Deleting temp file




        If you are wondering why i'm saving a temporary PNG file before saving the desired WEBP, it's because that library doesn't take a Bitmap as argument, it only works with File.



        The library logs an error saying "the file should be a JPEG" but it is working fine so far anyway, the PNG alpha channel is being kept in the WEBP so i'm ignoring that error.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 19 '18 at 1:29

























        answered Nov 17 '18 at 15:58









        GabrielBBGabrielBB

        70011233




        70011233



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284295%2fbitmap-conversion-to-webp-gives-signal-11%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            這個網誌中的熱門文章

            How to read a connectionString WITH PROVIDER in .NET Core?

            Node.js Script on GitHub Pages or Amazon S3

            Museum of Modern and Contemporary Art of Trento and Rovereto