{"id":1127,"date":"2021-12-17T09:22:11","date_gmt":"2021-12-17T01:22:11","guid":{"rendered":"http:\/\/www.max-shu.com\/blog\/?p=1127"},"modified":"2021-12-17T09:22:11","modified_gmt":"2021-12-17T01:22:11","slug":"%e4%bd%bf%e7%94%a8lvgl%e7%94%bb%e4%b8%80%e4%b8%aa%e8%a1%a8%e7%9b%98%e5%9c%86%e5%bc%a7%e9%9a%8f%e6%8c%87%e9%92%88%e5%8f%98%e5%8a%a8%e7%9a%84%e4%bb%aa%e8%a1%a8","status":"publish","type":"post","link":"http:\/\/www.max-shu.com\/blog\/?p=1127","title":{"rendered":"\u4f7f\u7528LVGL\u753b\u4e00\u4e2a\u8868\u76d8\u5706\u5f27\u968f\u6307\u9488\u53d8\u52a8\u7684\u4eea\u8868"},"content":{"rendered":"<p>\u4e0d\u505a\u8fc7\u591a\u89e3\u91ca\uff0c\u76f4\u63a5\u4e0a\u4ee3\u7801\uff0c\u4e3b\u8981\u539f\u7406\u5c31\u662f\u5229\u7528LVGL\u7684mask\u906e\u7f69\u7279\u6027\uff0c\u5148\u7528canvas\u753b\u51fa\u4e00\u4e2a\u5706\u5f27\uff08\u8be5\u5706\u5f27\u7684\u5f27\u5ea6\u968f\u7740\u6307\u9488\u5ea6\u6570\u53d8\u5316\u800c\u53d8\u5316\uff09\uff0c\u7136\u540e\u5236\u4f5c\u6210\u906e\u7f69\uff0c\u518d\u7136\u540e\u628a\u906e\u7f69\u5e94\u7528\u5230\u56fe\u7247\u4e0a\u3002<\/p>\n<div>\n<div>#include &#8220;..\/..\/..\/lv_examples.h&#8221;<\/div>\n<div>#if LV_USE_IMG<\/div>\n<div>LV_IMG_DECLARE(img_cogwheel_argb);<\/div>\n<div>lv_obj_t * om; \/\/\u968f\u6307\u9488\u53d8\u5316\u7684\u5e95\u56fe\u906e\u7f69<\/div>\n<div>lv_obj_t * bg; \/\/\u968f\u6307\u9488\u53d8\u5316\u7684\u5e95\u56fe\u56fe\u7247<\/div>\n<div>lv_obj_t * imgBg; \/\/\u8868\u76d8<\/div>\n<div>lv_obj_t * img; \/\/\u6307\u9488<\/div>\n<div>lv_obj_t * label1; \/\/\u901f\u5ea6\u6587\u672c<\/div>\n<div>uint32_t speed = 0;<\/div>\n<div>int dir=1;<\/div>\n<div>uint32_t oldAngle = 1800-450;<\/div>\n<div>void my_task(lv_task_t * task)<\/div>\n<div>{<\/div>\n<div>\u00a0 \u00a0 uint32_t * user_data = task-&gt;user_data;<\/div>\n<div>\u00a0 \u00a0 speed += dir*2; \/\/\u6bcf\u6b21\u901f\u5ea6\u52a02\u516c\u91cc<\/div>\n<div>\u00a0 \u00a0 uint32_t newAngle = 1800 &#8211; 450 + speed * 10 * 270 \/ 250; \/\/\u6574\u4e2a\u8868\u76d8\u6709\u523b\u5ea6\u7684\u5360270\u5ea6\uff0c\u6700\u5927250\u516c\u91cc\/\u5c0f\u65f6\uff0c\u8868\u76d8\u65cb\u8f6c\u89d2\u5ea6\u4ee51\/10\u5ea6\u4e3a\u5355\u4f4d\u3002<\/div>\n<div>\u00a0 \u00a0 \/\/\u7528\u52a8\u753b\u6765\u8fc7\u6e21\uff0c\u6bd4\u76f4\u63a5\u7528lv_img_set_angle\u8bbe\u7f6e\u5230\u65b0\u89d2\u5ea6\u8981\u6d41\u7545\u5f88\u591a\uff1a<\/div>\n<div>\u00a0 \u00a0 lv_anim_del_all();<\/div>\n<div>\u00a0 \u00a0 lv_anim_t a;<\/div>\n<div>\u00a0 \u00a0 lv_anim_init(&amp;a);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_var(&amp;a, img);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_exec_cb(&amp;a, (lv_anim_exec_xcb_t)lv_img_set_angle);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_values(&amp;a, oldAngle, newAngle);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_time(&amp;a, 100);<\/div>\n<div>\u00a0 \u00a0 \/\/lv_anim_set_playback_time(&amp;a, 100);<\/div>\n<div>\u00a0 \u00a0 lv_anim_start(&amp;a);<\/div>\n<div>\u00a0 \u00a0 lv_label_set_text_fmt(label1, &#8220;#ff0000 %d#&#8221;, speed);<\/div>\n<div>\u00a0 \u00a0 lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, -15);<\/div>\n<div>\u00a0 \u00a0 lv_objmask_remove_mask(om, NULL);<\/div>\n<div>\u00a0 \u00a0 lv_obj_del(bg);<\/div>\n<div>\u00a0 \u00a0 lv_obj_del(om);<\/div>\n<div>\u00a0 \u00a0 arc_mask_test(newAngle\/10);<\/div>\n<div>\u00a0 \u00a0 \/\/\u4e0b\u4e00\u6b21\u7684\u503c\uff1a<\/div>\n<div>\u00a0 \u00a0 oldAngle = newAngle;<\/div>\n<div>\u00a0 \u00a0 if(speed&gt;=250){<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 dir = -1;<\/div>\n<div>\u00a0 \u00a0 }<\/div>\n<div>\u00a0 \u00a0 if(speed&lt;=0){<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 dir = 1;<\/div>\n<div>\u00a0 \u00a0 }<\/div>\n<div>}<\/div>\n<div>#define MASK_WIDTH 440 \u00a0 \/\/\u56fe\u7247\u7684\u5bbd\u9ad8<\/div>\n<div>#define MASK_HEIGHT 440<\/div>\n<div>void arc_mask_test(uint32_t endRad) {<\/div>\n<div>\u00a0 \u00a0 \/* Create the mask of an arc by drawing it to a canvas*\/<\/div>\n<div>\u00a0 \u00a0 static lv_opa_t mask_map[MASK_WIDTH * MASK_HEIGHT];<\/div>\n<div>\u00a0 \u00a0 \/*Create a &#8220;8 bit alpha&#8221; canvas and clear it*\/<\/div>\n<div>\u00a0 \u00a0 lv_obj_t * canvas = lv_canvas_create(lv_scr_act(), NULL);<\/div>\n<div>\u00a0 \u00a0 lv_canvas_set_buffer(canvas, mask_map, MASK_WIDTH, MASK_HEIGHT, LV_IMG_CF_ALPHA_8BIT);<\/div>\n<div>\u00a0 \u00a0 lv_canvas_fill_bg(canvas, LV_COLOR_BLACK, LV_OPA_TRANSP);<\/div>\n<div>\u00a0 \u00a0 \/*Draw an arc to the canvas. The result &#8220;image&#8221; will be used as mask*\/<\/div>\n<div>\u00a0 \u00a0 lv_draw_line_dsc_t arc_dsc;<\/div>\n<div>\u00a0 \u00a0 lv_draw_line_dsc_init(&amp;arc_dsc);<\/div>\n<div>\u00a0 \u00a0 arc_dsc.color = LV_COLOR_WHITE;<\/div>\n<div>\u00a0 \u00a0 arc_dsc.width = 50;<\/div>\n<div>\u00a0 \u00a0 lv_canvas_draw_arc(canvas, MASK_WIDTH \/ 2, MASK_HEIGHT \/ 2, MASK_WIDTH \/ 2, 180-45, endRad, &amp;arc_dsc);\/\/\u4ee5\u6b63\u65b9\u5f62\u4e2d\u5fc3\u4e3a\u4e2d\u5fc3\uff0c\u4ee51\/2\u8fb9\u957f\u4e3a\u534a\u5f84\uff0c\u753b\u5706\u5f27<\/div>\n<div>\u00a0 \u00a0 \/*The mask is reads the canvas is not required anymore*\/<\/div>\n<div>\u00a0 \u00a0 lv_obj_del(canvas);<\/div>\n<div>\u00a0 \u00a0 \/*Create an object mask which will use the created mask*\/<\/div>\n<div>\u00a0 \u00a0 om = lv_objmask_create(lv_scr_act(), NULL);<\/div>\n<div>\u00a0 \u00a0 lv_obj_set_size(om, MASK_WIDTH, MASK_HEIGHT);<\/div>\n<div>\u00a0 \u00a0 lv_obj_align(om, NULL, LV_ALIGN_CENTER, 0, 44); \/\/\u5bf9\u9f50\u5230\u6307\u9488\u76d8\u9762\u7684\u4e2d\u5fc3<\/div>\n<div>\u00a0 \u00a0 lv_obj_move_background(om); \/\/\u628a\u5b83\u653e\u5230\u5e95\u56fe\u4e0a\uff0c\u907f\u514d\u8986\u76d6\u8868\u76d8\u548c\u6307\u9488<\/div>\n<div>\u00a0 \u00a0 \/*Add the created mask map to the object mask*\/<\/div>\n<div>\u00a0 \u00a0 lv_draw_mask_map_param_t m;<\/div>\n<div>\u00a0 \u00a0 lv_area_t a;<\/div>\n<div>\u00a0 \u00a0 a.x1 = 0;<\/div>\n<div>\u00a0 \u00a0 a.y1 = 0;<\/div>\n<div>\u00a0 \u00a0 a.x2 = MASK_WIDTH &#8211; 1;<\/div>\n<div>\u00a0 \u00a0 a.y2 = MASK_HEIGHT &#8211; 1;<\/div>\n<div>\u00a0 \u00a0 lv_draw_mask_map_init(&amp;m, &amp;a, mask_map); \/\/\u628a\u753b\u597d\u7684\u5706\u5f27\u8bbe\u7f6e\u5230\u906e\u7f69<\/div>\n<div>\u00a0 \u00a0 lv_objmask_add_mask(om, &amp;m); \/\/\u628a\u906e\u7f69\u8bbe\u7f6e\u5230\u906e\u7f69\u5bf9\u8c61<\/div>\n<div>\u00a0 \u00a0 \/*Create a style with gradient*\/<\/div>\n<div>\/* \u00a0 \u00a0static lv_style_t style_bg;<\/div>\n<div>\u00a0 \u00a0 lv_style_init(&amp;style_bg);<\/div>\n<div>\u00a0 \u00a0 lv_style_set_bg_opa(&amp;style_bg, LV_STATE_DEFAULT, LV_OPA_COVER); \/\/\u9759\u6001\u7684style \u53ea\u80fd\u8bbe\u7f6e\u5404\u79cd\u5c5e\u6027\u4e00\u6b21\uff0c\u8fd9\u91cc\u5faa\u73af\u8bbe\u7f6e\u7684\u8bdd\u5219\u4f1a\u5185\u5b58\u6cc4\u9732<\/div>\n<div>\u00a0 \u00a0 lv_style_set_bg_color(&amp;style_bg, LV_STATE_DEFAULT, LV_COLOR_RED);<\/div>\n<div>\u00a0 \u00a0 lv_style_set_bg_grad_color(&amp;style_bg, LV_STATE_DEFAULT, LV_COLOR_BLUE);<\/div>\n<div>\u00a0 \u00a0 lv_style_set_bg_grad_dir(&amp;style_bg, LV_STATE_DEFAULT, LV_GRAD_DIR_HOR);<\/div>\n<div>*\/<\/div>\n<div>\u00a0 \u00a0 \/* Create and object with the gradient style on the object mask.<\/div>\n<div>\u00a0 \u00a0 \u00a0* The arc will be masked from the gradient*\/<\/div>\n<div>\/\/ \u00a0 \u00a0lv_obj_t * bg = lv_obj_create(om, NULL);<\/div>\n<div>\u00a0 \u00a0 bg = lv_img_create(om, NULL);<\/div>\n<div>\u00a0 \u00a0 LV_IMG_DECLARE(pointer_bg);<\/div>\n<div>\u00a0 \u00a0 lv_img_set_src(bg, &amp;pointer_bg);<\/div>\n<div>\u00a0 \u00a0 lv_obj_align(bg, NULL, LV_ALIGN_CENTER, 0, 0); \/\/\u56fe\u7247\u662fmask\u7684\u5b50\u5bf9\u8c61\uff0c\u6240\u4ee5\u5bf9\u9f50\u4e2d\u5fc3\u5373\u53ef<\/div>\n<div>\u00a0 \u00a0 lv_obj_reset_style_list(bg, LV_OBJ_PART_MAIN);<\/div>\n<div>\/\/ \u00a0 \u00a0lv_obj_add_style(bg, LV_OBJ_PART_MAIN, &amp;style_bg);<\/div>\n<div>\u00a0 \u00a0 lv_obj_set_size(bg, MASK_WIDTH, MASK_HEIGHT);<\/div>\n<div>}<\/div>\n<div>void lv_ex_img_3(void)<\/div>\n<div>{<\/div>\n<div>\u00a0 \u00a0 \/\/\u5168\u9ed1\u80cc\u666f<\/div>\n<div>\u00a0 \u00a0 static lv_style_t style_bg;<\/div>\n<div>\u00a0 \u00a0 lv_style_init(&amp;style_bg);<\/div>\n<div>\u00a0 \u00a0 lv_style_set_bg_opa(&amp;style_bg, LV_STATE_DEFAULT, LV_OPA_COVER);<\/div>\n<div>\u00a0 \u00a0 lv_style_set_bg_color(&amp;style_bg, LV_STATE_DEFAULT, LV_COLOR_BLACK);<\/div>\n<div>\u00a0 \u00a0 lv_obj_add_style(lv_scr_act(), LV_OBJ_PART_MAIN, &amp;style_bg);<\/div>\n<div>\u00a0 \u00a0 \/\/\u968f\u6307\u9488\u52a8\u4f5c\u7684\u5e95\u56fe<\/div>\n<div>\u00a0 \u00a0 arc_mask_test(180-45);<\/div>\n<div>\u00a0 \u00a0 \/\/\u8868\u76d8\u56fe<\/div>\n<div>\u00a0 \u00a0 imgBg = lv_img_create(lv_scr_act(), NULL);<\/div>\n<div>\u00a0 \u00a0 LV_IMG_DECLARE(pointer_bg_1);<\/div>\n<div>\u00a0 \u00a0 lv_img_set_src(imgBg, &amp;pointer_bg_1);<\/div>\n<div>\u00a0 \u00a0 lv_obj_align(imgBg, NULL, LV_ALIGN_CENTER, 0, 0);<\/div>\n<div>\u00a0 \u00a0 \/*\u6307\u9488\u56fe*\/<\/div>\n<div>\u00a0 \u00a0 img = lv_img_create(lv_scr_act(), NULL);<\/div>\n<div>\u00a0 \u00a0 \/\/lv_img_set_src(img, &amp;img_cogwheel_argb);<\/div>\n<div>\u00a0 \u00a0 LV_IMG_DECLARE(pointer);<\/div>\n<div>\u00a0 \u00a0 lv_img_set_src(img, &amp;pointer);<\/div>\n<div>\u00a0 \u00a0 lv_obj_align(img, NULL, LV_ALIGN_CENTER, 60, 44); \/\/\u6307\u9488\u957f150pt\uff0c\u65cb\u8f6c\u4e2d\u5fc3\u4f4d\u4e8e15pt\u5904\uff0c\u6240\u4ee5\u5bf9\u9f50\u5230\u4e2d\u5fc3\u8fd8\u8981\u504f\u79fb150\/2-15=60pt<\/div>\n<div>\u00a0 \u00a0 lv_img_set_pivot(img, 15, 15); \u00a0 \u00a0\/\/\u7ed5\u7740\u56fe\u50cf\u76f8\u5bf9\u4e8e\u5de6\u4e0a\u89d2\u7684\u504f\u79fb\u6765\u65cb\u8f6c<\/div>\n<div>\u00a0 \u00a0 lv_img_set_angle(img, 1800-450);<\/div>\n<div>\u00a0 \u00a0 \/\/\u6587\u672c\uff1a<\/div>\n<div>\u00a0 \u00a0 label1 = lv_label_create(lv_scr_act(), NULL);<\/div>\n<div>\u00a0 \u00a0 \/\/\u8bbe\u7f6e\u5b57\u4f53<\/div>\n<div>\u00a0 \u00a0 static lv_style_t styleFont; \/\/\u5fc5\u987b\u662f\u9759\u6001\u7684<\/div>\n<div>\u00a0 \u00a0 lv_style_init(&amp;styleFont);<\/div>\n<div>\u00a0 \u00a0 lv_style_set_text_font(&amp;styleFont, LV_STATE_DEFAULT, &amp;lv_font_montserrat_30);<\/div>\n<div>\u00a0 \u00a0 lv_obj_add_style(label1, LV_GAUGE_PART_MAIN, &amp;styleFont);<\/div>\n<div>\u00a0 \u00a0 lv_label_set_long_mode(label1, LV_LABEL_LONG_EXPAND); \u00a0 \u00a0 \/*Break the long lines*\/<\/div>\n<div>\u00a0 \u00a0 lv_label_set_recolor(label1, true); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/*Enable re-coloring by commands in the text*\/<\/div>\n<div>\u00a0 \u00a0 lv_label_set_align(label1, LV_LABEL_ALIGN_CENTER); \u00a0 \u00a0 \u00a0 \/*Center aligned lines*\/<\/div>\n<div>\u00a0 \u00a0 lv_label_set_text_fmt(label1, &#8220;#ff0000 %d#&#8221;, 0);<\/div>\n<div>\u00a0 \u00a0 lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, -15);<\/div>\n<div>\u00a0 \u00a0 static uint32_t user_data = 10;<\/div>\n<div>\u00a0 \u00a0 lv_task_create(my_task, 100, LV_TASK_PRIO_HIGH, &amp;user_data);<\/div>\n<div>\u00a0 \u00a0 \/\/\u6307\u9488\u52a8\u753b<\/div>\n<div>\/* \u00a0 \u00a0lv_anim_t a;<\/div>\n<div>\u00a0 \u00a0 lv_anim_init(&amp;a);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_var(&amp;a, img);<\/div>\n<div>\u00a0 \u00a0 \/\/\u8fd9\u4e2a\u540e\u64ad\u653e<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_exec_cb(&amp;a, (lv_anim_exec_xcb_t)lv_img_set_angle);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_values(&amp;a, 1800+1800+450, 1800-450); \/\/\u56e0\u4e3a\u8be5\u6307\u9488\u56fe\u50cf\u671d\u53f3\uff0c\u6709\u4e2a180\u5ea6\u7684\u8d77\u59cb\u503c\uff0c\u8868\u76d8\u5e95\u90e8\u7a7a\u51fa90\u5ea6\u4e0d\u7528\uff0c\u5bf9\u79f0\u7684\u539f\u56e0\u6240\u4ee5\u8981\u52a045\u5ea6<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_time(&amp;a, 5000);<\/div>\n<div>\u00a0 \u00a0 \/\/lv_anim_set_repeat_count(&amp;a, 1);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_playback_time(&amp;a, 5000);<\/div>\n<div>\u00a0 \u00a0 lv_anim_start(&amp;a);<\/div>\n<div>\u00a0 \u00a0 \/\/\u8fd9\u4e2a\u5148\u64ad\u653e\uff1a<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_exec_cb(&amp;a, (lv_anim_exec_xcb_t)lv_img_set_angle);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_values(&amp;a, 1800-450, 1800+1800+450); \/\/\u56e0\u4e3a\u8be5\u6307\u9488\u56fe\u50cf\u671d\u53f3\uff0c\u6709\u4e2a180\u5ea6\u7684\u8d77\u59cb\u503c\uff0c\u8868\u76d8\u5e95\u90e8\u7a7a\u51fa90\u5ea6\u4e0d\u7528\uff0c\u5bf9\u79f0\u7684\u539f\u56e0\u6240\u4ee5\u8981\u52a045\u5ea6<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_time(&amp;a, 5000);<\/div>\n<div>\u00a0 \u00a0 lv_anim_set_playback_time(&amp;a, 5000);<\/div>\n<div>\u00a0 \u00a0 \/\/lv_anim_set_repeat_count(&amp;a, LV_ANIM_REPEAT_INFINITE);<\/div>\n<div>\u00a0 \u00a0 lv_anim_start(&amp;a);<\/div>\n<div>*\/<\/div>\n<div>\u00a0 \u00a0 \/\/lv_anim_set_exec_cb(&amp;a, (lv_anim_exec_xcb_t)lv_img_set_zoom);<\/div>\n<div>\u00a0 \u00a0 \/\/lv_anim_set_values(&amp;a, 128, 400);<\/div>\n<div>\u00a0 \u00a0 \/\/lv_anim_set_playback_time(&amp;a, 1000);<\/div>\n<div>\u00a0 \u00a0 \/\/lv_anim_start(&amp;a);<\/div>\n<div>}<\/div>\n<div>#endif<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0d\u505a\u8fc7\u591a\u89e3\u91ca\uff0c\u76f4\u63a5\u4e0a\u4ee3\u7801\uff0c\u4e3b\u8981\u539f\u7406\u5c31\u662f\u5229\u7528LVGL\u7684mask\u906e\u7f69\u7279\u6027\uff0c\u5148\u7528canvas\u753b\u51fa\u4e00\u4e2a\u5706\u5f27\uff08\u8be5\u5706\u5f27\u7684\u5f27 &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,13],"tags":[851,510,852,7,855],"class_list":["post-1127","post","type-post","status-publish","format-standard","hentry","category-6","category-13","tag-lvgl","tag-510","tag-852","tag-7","tag-855"],"views":4071,"_links":{"self":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1127"}],"version-history":[{"count":1,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1127\/revisions"}],"predecessor-version":[{"id":1128,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1127\/revisions\/1128"}],"wp:attachment":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1127"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}