From a467e68100c4458eed82d0cc5cd08f98fe418f08 Mon Sep 17 00:00:00 2001
From: whm1216 <2248293452@qq.com>
Date: Tue, 2 Dec 2025 23:21:51 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96=E7=BD=91?=
=?UTF-8?q?=E7=BB=9C=E7=85=A7=E7=89=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../micropython/blocks/ai_local.js | 22 +++++++++++++++++++
.../micropython/generators/ai_local.js | 10 +++++++++
.../micropython/generators/display_onboard.js | 2 +-
.../micropython_esp32s3/template.xml | 22 +++++++++++++++++++
common/msg/blockly/en.js | 1 +
common/msg/blockly/zh-hans.js | 1 +
common/msg/blockly/zh-hant.js | 1 +
7 files changed, 58 insertions(+), 1 deletion(-)
diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js
index 6d4f7c82..6ebcaf22 100644
--- a/boards/default_src/micropython/blocks/ai_local.js
+++ b/boards/default_src/micropython/blocks/ai_local.js
@@ -359,6 +359,28 @@ export const OPEN_IMAGE = {
}
};
+export const GET_IMAGE_FROM_NET = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('direct')
+ .appendField(Blockly.Msg.MIXLY_GET_IMAGE_FROM_NET);
+ this.appendDummyInput('')
+ .appendField(Blockly.Msg.MIXLY_ROTATION_ANGLE)
+ .appendField(new Blockly.FieldDropdown([
+ ['0','0'],
+ ['90','90'],
+ ['180','180'],
+ ['270','270']
+ ]),'angle');
+ this.appendValueInput("w")
+ .appendField(Blockly.Msg.MIXLY_Enlarge_and_scale_to)
+ this.appendValueInput("h")
+ .appendField(Blockly.Msg.MIXLY_High_zoom_level_to)
+ this.setOutput(true);
+ this.setInputsInline(true);
+ this.setTooltip(Blockly.Msg.MIXLY_OPEN_IMAGE_TOOLTIP);
+ }
+};
export const CAMERA_LOOGOUT = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js
index 01683994..04c9dbe4 100644
--- a/boards/default_src/micropython/generators/ai_local.js
+++ b/boards/default_src/micropython/generators/ai_local.js
@@ -164,6 +164,16 @@ export const OPEN_IMAGE = function (_, generator) {
return [code, generator.ORDER_ATOMIC];
}
+export const GET_IMAGE_FROM_NET = function (_, generator) {
+ generator.definitions_['camera_import_Image'] = 'from camera import Image';
+ var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
+ var a = this.getFieldValue('angle');
+ var w = generator.valueToCode(this, 'w', generator.ORDER_ATOMIC);
+ var h = generator.valueToCode(this, 'h', generator.ORDER_ATOMIC);
+ var code = 'Image.download(url=' + direct + ', rotation=' + a + ', scale_width='+w+', scale_height='+h+')';
+ return [code, generator.ORDER_ATOMIC];
+}
+
export const CAMERA_LOOGOUT = function (_, generator) {
var code = 'camera.deinit()\n';
return code;
diff --git a/boards/default_src/micropython/generators/display_onboard.js b/boards/default_src/micropython/generators/display_onboard.js
index cc7a5f53..670bc2f9 100644
--- a/boards/default_src/micropython/generators/display_onboard.js
+++ b/boards/default_src/micropython/generators/display_onboard.js
@@ -1188,7 +1188,7 @@ export const onboard_tft_show_qrcode = function (_, generator) {
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC) || 'True';
- var code = 'onboard_tft.qrcode(' + direct + ',sync='+ bool + ')\n';
+ var code = 'onboard_tft.qrcode(' + direct + ')\n';
return code;
}
diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml
index a0fcb4d3..457dee01 100644
--- a/boards/default_src/micropython_esp32s3/template.xml
+++ b/boards/default_src/micropython_esp32s3/template.xml
@@ -2807,6 +2807,28 @@
+
+ image
+
+
+
+
+ https://gitee.com/dahanzimin/test/raw/master/pic/mixly.jpg
+
+
+
+
+ 240
+
+
+
+
+ 240
+
+
+
+
+
diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js
index fc3a6d11..85e5b0cf 100644
--- a/common/msg/blockly/en.js
+++ b/common/msg/blockly/en.js
@@ -533,6 +533,7 @@ En.TEXT_CHANGECASE_TOOLTIP = "Return a copy of the text in a different case.";
En.TEXT_CHARAT_FIRST = "get first letter";
En.TEXT_CHARAT_FROM_END = "get letter # from end";
En.TEXT_CHARAT_FROM_START = "get letter #";
+En.MIXLY_GET_IMAGE_FROM_NET = 'Get network image,URL address';
En.TEXT_CHARAT = "";
En.TEXT_CHARAT2 = "";
En.TEXT_CHARAT_HELPURL = "https://github.com/google/blockly/wiki/Text#extracting-text";
diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js
index 0ef61e18..7054af2c 100644
--- a/common/msg/blockly/zh-hans.js
+++ b/common/msg/blockly/zh-hans.js
@@ -3514,6 +3514,7 @@ ZhHans.MIXLY_BACKGROUND_MUSIC = '背景音乐';
ZhHans.MIXLY_PROGRAM_BLOCK = '等待播放结束';
ZhHans.MIXLY_PLAY_TTS_TOOLTIP = '背景音乐范围0-15, 0为无背景音乐';
ZhHans.MIXLY_GET_NTP = '获取网络时间';
+ZhHans.MIXLY_GET_IMAGE_FROM_NET = '获取网络图像,URL地址';
ZhHans.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE = '自动切换';
ZhHans.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY = '只使用追光';
ZhHans.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR = '追光传感器';
diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js
index 7d5ac56a..d070dbae 100644
--- a/common/msg/blockly/zh-hant.js
+++ b/common/msg/blockly/zh-hant.js
@@ -1138,6 +1138,7 @@ ZhHant.MIXLY_DISPLAY_MATRIX_PICARRAY = " 圖案陣列";
ZhHant.MIXLY_DISPLAY_MATRIX_ROTATE = "旋轉";
ZhHant.MIXLY_RTCINIT = '初始化時鐘模組';
ZhHant.MIXLY_RTCGETTIME = '獲取時間';
+ZhHant.MIXLY_GET_IMAGE_FROM_NET = '獲取網絡圖像,URL地址';
ZhHant.MIXLY_RTCSETTIME = '設置時間';
ZhHant.MIXLY_RTCSETDATE = '設置日期';
ZhHant.MIXLY_GET = '獲取';