Skip to content
This repository was archived by the owner on Oct 28, 2023. It is now read-only.

Commit f6c0902

Browse files
authored
Merge pull request SHA2017-badge#122 from SHA2017-badge/basvs-eink-png-negative-offset
support negative offsets in png image loading
2 parents 0e89e70 + 4cafe0c commit f6c0902

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

esp32/modbadge.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,16 +224,17 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(badge_display_picture_obj,
224224

225225
/* PNG READER TEST */
226226

227-
STATIC mp_obj_t badge_eink_png(mp_obj_t obj_x, mp_obj_t obj_y, mp_obj_t obj_filename) {
228-
uint16_t x = mp_obj_get_int(obj_x);
229-
uint16_t y = mp_obj_get_int(obj_y);
227+
STATIC mp_obj_t badge_eink_png(mp_obj_t obj_x, mp_obj_t obj_y, mp_obj_t obj_filename)
228+
{
229+
int x = mp_obj_get_int(obj_x);
230+
int y = mp_obj_get_int(obj_y);
231+
const char* filename = mp_obj_str_get_str(obj_filename);
232+
230233
if (x >= BADGE_EINK_WIDTH || y >= BADGE_EINK_HEIGHT)
231234
{
232235
return mp_const_none;
233236
}
234237

235-
mp_uint_t len;
236-
const char* filename = mp_obj_str_get_data(obj_filename, &len);
237238
struct lib_file_reader *fr = lib_file_new(filename, 1024);
238239
if (fr == NULL)
239240
{
@@ -249,7 +250,9 @@ STATIC mp_obj_t badge_eink_png(mp_obj_t obj_x, mp_obj_t obj_y, mp_obj_t obj_file
249250
return mp_const_none;
250251
}
251252

252-
int res = lib_png_load_image(pr, &badge_eink_fb[y * BADGE_EINK_WIDTH + x], BADGE_EINK_WIDTH - x, BADGE_EINK_HEIGHT - y, BADGE_EINK_WIDTH);
253+
uint32_t dst_min_x = x < 0 ? -x : 0;
254+
uint32_t dst_min_y = y < 0 ? -y : 0;
255+
int res = lib_png_load_image(pr, &badge_eink_fb[y * BADGE_EINK_WIDTH + x], dst_min_x, dst_min_y, BADGE_EINK_WIDTH - x, BADGE_EINK_HEIGHT - y, BADGE_EINK_WIDTH);
253256
lib_png_destroy(pr);
254257
lib_file_destroy(fr);
255258

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy