Skip to content

Commit 7f20419

Browse files
Add new ImageView (in progress)
1 parent 415b3d7 commit 7f20419

File tree

3 files changed

+98
-0
lines changed

3 files changed

+98
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "ImageView",
3+
"publisher": "MicroPythonOS",
4+
"short_description": "Image Viewer",
5+
"long_description": "Opens and shows images on the display.",
6+
"icon_url": "https://apps.micropythonos.com/apps/com.micropythonos.imageview/icons/com.micropythonos.imageview_0.0.1_64x64.png",
7+
"download_url": "https://apps.micropythonos.com/apps/com.micropythonos.imageview/mpks/com.micropythonos.imageview_0.0.1.mpk",
8+
"fullname": "com.micropythonos.imageview",
9+
"version": "0.0.1",
10+
"entrypoint": "assets/imageview.py",
11+
"category": "graphics",
12+
"activities": [
13+
{
14+
"entrypoint": "assets/imageview.py",
15+
"classname": "ImageView",
16+
"intent_filters": [
17+
{
18+
"action": "main",
19+
"category": "launcher"
20+
}
21+
]
22+
}
23+
]
24+
}
25+
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import os
2+
import time
3+
4+
from mpos.apps import Activity
5+
6+
class ImageView(Activity):
7+
8+
imagedir = "../icons/"
9+
images = []
10+
image_nr = 0
11+
image_timer = None
12+
image = None
13+
image_dsc = None
14+
15+
def onCreate(self):
16+
screen = lv.obj()
17+
self.label = lv.label(screen)
18+
self.label.set_text('Hello Images!')
19+
self.label.align(lv.ALIGN.TOP_MID,0,0)
20+
self.image = lv.image(screen)
21+
self.image.set_size(128, 128)
22+
self.image.align(lv.ALIGN.BOTTOM_MID,0,0)
23+
self.setContentView(screen)
24+
25+
def onResume(self, screen):
26+
self.images.clear()
27+
for item in os.listdir(self.imagedir):
28+
print(item)
29+
if item.endswith(".jpg") or item.endswith(".jpeg") or item.endswith(".png"):
30+
#if item.endswith(".png"):
31+
fullname = f"{self.imagedir}/{item}"
32+
size = os.stat(fullname)[6]
33+
print(f"size: {size}")
34+
#if size > 1024*1024:
35+
if size > 60000:
36+
print(f"Skipping file of size {size}")
37+
continue
38+
self.images.append(fullname)
39+
self.image_timer = lv.timer_create(self.show_next_image, 1000, None)
40+
41+
def onStop(self, screen):
42+
if self.image_timer:
43+
print("ImageView: deleting image_timer")
44+
self.image_timer.delete()
45+
46+
def show_next_image(self, event):
47+
print("showing next image...")
48+
if len(self.images) < 1:
49+
return
50+
if self.image_nr >= len(self.images):
51+
self.image_nr = 0
52+
name = self.images[self.image_nr]
53+
print(f"show_next_image showing {name}")
54+
self.show_image(name)
55+
self.image_nr = self.image_nr + 1
56+
57+
def show_image(self, name):
58+
try:
59+
self.label.set_text(name)
60+
f = open(name, 'rb')
61+
image_data = f.read()
62+
print(f"loaded {len(image_data)} bytes")
63+
f.close()
64+
self.image_dsc = lv.image_dsc_t({
65+
'data_size': len(image_data),
66+
'data': image_data
67+
})
68+
#image.set_size(128, 128)
69+
#image.set_scale(512)
70+
self.image.set_src(self.image_dsc)
71+
print(f"done with show_image({name})")
72+
except Exception as e:
73+
print("show_image got exception: {e}")
5.25 KB
Loading

0 commit comments

Comments
 (0)