#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <jpeglib.h>
#define ROUND_0_255(v) ((v) < 0 ? 0 : ((v) > 255 ? 255 : (v)))
typedef struct {
struct jpeg_destination_mgr pub;
JOCTET *buffer;
unsigned char *outbuffer;
int outbuffer_size;
unsigned char *outbuffer_cursor;
int *written;
} jpeg_dest_mgr, *jpeg_dest_mgr_ptr;
struct jpeg_mgr_info {
unsigned long written;
JSAMPROW row_pointer[1];
struct jpeg_error_mgr jerr;
struct jpeg_compress_struct cinfo;
};
static struct jpeg_mgr_info jinfo;
static short radj[] = {
-175, -174, -172, -171, -169, -168, -167, -165,
-164, -163, -161, -160, -159, -157, -156, -154,
-153, -152, -150, -149, -148, -146, -145, -143,
-142, -141, -139, -138, -137, -135, -134, -132,
-131, -130, -128, -127, -126, -124, -123, -121,
-120, -119, -117, -116, -115, -113, -112, -111,
-109, -108, -106, -105, -104, -102, -101, -100,
-98, -97, -95, -94, -93, -91, -90, -89,
-87, -86, -84, -83, -82, -80, -79, -78,
-76, -75, -74, -72, -71, -69, -68, -67,
-65, -64, -63, -61, -60, -58, -57, -56,
-54, -53, -52, -50, -49, -47, -46, -45,
-43, -42, -41, -39, -38, -37, -35, -34,
-32, -31, -30, -28, -27, -26, -24, -23,
-21, -20, -19, -17, -16, -15, -13, -12,
-10, -9, -8, -6, -5, -4, -2, -1,
0, 1, 2, 4, 5, 6, 8, 9,
10, 12, 13, 15, 16, 17, 19, 20,
21, 23, 24, 26, 27, 28, 30, 31,
32, 34, 35, 37, 38, 39, 41, 42,
43, 45, 46, 47, 49, 50, 52, 53,
54, 56, 57, 58, 60, 61, 63, 64,
65, 67, 68, 69, 71, 72, 74, 75,
76, 78, 79, 80, 82, 83, 84, 86,
87, 89, 90, 91, 93, 94, 95, 97,
98, 100, 101, 102, 104, 105, 106, 108,
109, 111, 112, 113, 115, 116, 117, 119,
120, 121, 123, 124, 126, 127, 128, 130,
131, 132, 134, 135, 137, 138, 139, 141,
142, 143, 145, 146, 148, 149, 150, 152,
153, 154, 156, 157, 159, 160, 161, 163,
164, 165, 167, 168, 169, 171, 172, 174,
};
static short gadj1[] = {
-89, -88, -87, -87, -86, -85, -85, -84,
-83, -83, -82, -81, -80, -80, -79, -78,
-78, -77, -76, -76, -75, -74, -73, -73,
-72, -71, -71, -70, -69, -69, -68, -67,
-67, -66, -65, -64, -64, -63, -62, -62,
-61, -60, -60, -59, -58, -57, -57, -56,
-55, -55, -54, -53, -53, -52, -51, -50,
-50, -49, -48, -48, -47, -46, -46, -45,
-44, -43, -43, -42, -41, -41, -40, -39,
-39, -38, -37, -36, -36, -35, -34, -34,
-33, -32, -32, -31, -30, -30, -29, -28,
-27, -27, -26, -25, -25, -24, -23, -23,
-22, -21, -20, -20, -19, -18, -18, -17,
-16, -16, -15, -14, -13, -13, -12, -11,
-11, -10, -9, -9, -8, -7, -6, -6,
-5, -4, -4, -3, -2, -2, -1, 0,
0, 0, 1, 2, 2, 3, 4, 4,
5, 6, 6, 7, 8, 9, 9, 10,
11, 11, 12, 13, 13, 14, 15, 16,
16, 17, 18, 18, 19, 20, 20, 21,
22, 23, 23, 24, 25, 25, 26, 27,
27, 28, 29, 30, 30, 31, 32, 32,
33, 34, 34, 35, 36, 36, 37, 38,
39, 39, 40, 41, 41, 42, 43, 43,
44, 45, 46, 46, 47, 48, 48, 49,
50, 50, 51, 52, 53, 53, 54, 55,
55, 56, 57, 57, 58, 59, 60, 60,
61, 62, 62, 63, 64, 64, 65, 66,
67, 67, 68, 69, 69, 70, 71, 71,
72, 73, 73, 74, 75, 76, 76, 77,
78, 78, 79, 80, 80, 81, 82, 83,
83, 84, 85, 85, 86, 87, 87, 88,
};
static short gadj2[] = {
-43, -42, -42, -42, -41, -41, -41, -40,
-40, -40, -39, -39, -39, -38, -38, -38,
-37, -37, -37, -36, -36, -36, -35, -35,
-35, -34, -34, -34, -33, -33, -33, -32,
-32, -32, -31, -31, -31, -30, -30, -30,
-29, -29, -29, -28, -28, -28, -27, -27,
-27, -26, -26, -25, -25, -25, -24, -24,
-24, -23, -23, -23, -22, -22, -22, -21,
-21, -21, -20, -20, -20, -19, -19, -19,
-18, -18, -18, -17, -17, -17, -16, -16,
-16, -15, -15, -15, -14, -14, -14, -13,
-13, -13, -12, -12, -12, -11, -11, -11,
-10, -10, -10, -9, -9, -9, -8, -8,
-8, -7, -7, -7, -6, -6, -6, -5,
-5, -5, -4, -4, -4, -3, -3, -3,
-2, -2, -2, -1, -1, -1, 0, 0,
0, 0, 0, 1, 1, 1, 2, 2,
2, 3, 3, 3, 4, 4, 4, 5,
5, 5, 6, 6, 6, 7, 7, 7,
8, 8, 8, 9, 9, 9, 10, 10,
10, 11, 11, 11, 12, 12, 12, 13,
13, 13, 14, 14, 14, 15, 15, 15,
16, 16, 16, 17, 17, 17, 18, 18,
18, 19, 19, 19, 20, 20, 20, 21,
21, 21, 22, 22, 22, 23, 23, 23,
24, 24, 24, 25, 25, 25, 26, 26,
27, 27, 27, 28, 28, 28, 29, 29,
29, 30, 30, 30, 31, 31, 31, 32,
32, 32, 33, 33, 33, 34, 34, 34,
35, 35, 35, 36, 36, 36, 37, 37,
37, 38, 38, 38, 39, 39, 39, 40,
40, 40, 41, 41, 41, 42, 42, 42,
};
static short badj[] = {
-221, -220, -218, -216, -214, -213, -211, -209,
-207, -206, -204, -202, -200, -199, -197, -195,
-194, -192, -190, -188, -187, -185, -183, -181,
-180, -178, -176, -174, -173, -171, -169, -168,
-166, -164, -162, -161, -159, -157, -155, -154,
-152, -150, -148, -147, -145, -143, -142, -140,
-138, -136, -135, -133, -131, -129, -128, -126,
-124, -123, -121, -119, -117, -116, -114, -112,
-110, -109, -107, -105, -103, -102, -100, -98,
-97, -95, -93, -91, -90, -88, -86, -84,
-83, -81, -79, -77, -76, -74, -72, -71,
-69, -67, -65, -64, -62, -60, -58, -57,
-55, -53, -51, -50, -48, -46, -45, -43,
-41, -39, -38, -36, -34, -32, -31, -29,
-27, -25, -24, -22, -20, -19, -17, -15,
-13, -12, -10, -8, -6, -5, -3, -1,
0, 1, 3, 5, 6, 8, 10, 12,
13, 15, 17, 19, 20, 22, 24, 25,
27, 29, 31, 32, 34, 36, 38, 39,
41, 43, 45, 46, 48, 50, 51, 53,
55, 57, 58, 60, 62, 64, 65, 67,
69, 71, 72, 74, 76, 77, 79, 81,
83, 84, 86, 88, 90, 91, 93, 95,
97, 98, 100, 102, 103, 105, 107, 109,
110, 112, 114, 116, 117, 119, 121, 123,
124, 126, 128, 129, 131, 133, 135, 136,
138, 140, 142, 143, 145, 147, 148, 150,
152, 154, 155, 157, 159, 161, 162, 164,
166, 168, 169, 171, 173, 174, 176, 178,
180, 181, 183, 185, 187, 188, 190, 192,
194, 195, 197, 199, 200, 202, 204, 206,
207, 209, 211, 213, 214, 216, 218, 220,
};
void convert_yuv_to_rgb(void *yuv, void *rgb, unsigned int width, unsigned int height, unsigned int bps)
{
unsigned int i;
int y1, y2, u, v;
unsigned char *src = yuv;
unsigned char *dst = rgb;
unsigned int count = width * height / 2;
switch (bps) {
case 24:
for (i = 0; i < count; i++) {
y1 = *src++;
u = *src++;
y2 = *src++;
v = *src++;
*dst++ = ROUND_0_255(y1 + radj[v]);
*dst++ = ROUND_0_255(y1 - gadj1[u] - gadj2[v]);
*dst++ = ROUND_0_255(y1 + badj[u]);
*dst++ = ROUND_0_255(y2 + radj[v]);
*dst++ = ROUND_0_255(y2 - gadj1[u] - gadj2[v]);
*dst++ = ROUND_0_255(y2 + badj[u]);
}
break;
}
}
void convert_rgb_to_jpg_init(void)
{
memset(&jinfo, 0, sizeof(struct jpeg_mgr_info));
jinfo.cinfo.err = jpeg_std_error(&jinfo.jerr);
jpeg_create_compress(&jinfo.cinfo);
}
int convert_rgb_to_jpg_work(void *rgb, void *jpeg, unsigned int width, unsigned int height, unsigned int bpp, int quality)
{
jinfo.written = width * height * bpp / 3;
jpeg_mem_dest(&jinfo.cinfo, (unsigned char **)&jpeg, &jinfo.written);
jinfo.cinfo.image_width
没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式实习-day8、9-智能家居系统相关代码
共66个文件
h:29个
c:11个
o:5个
5星 · 超过95%的资源 需积分: 44 38 下载量 145 浏览量
2017-11-20
18:08:37
上传
评论 6
收藏 1.17MB RAR 举报
温馨提示
本智能家居系统相关资源描述: 客户端为,利用QT开发的界面 服务端为,开发版(测试时在虚拟机ubuntu上) 1、用户可以根据用户名和密码登录此系统,进入控制界面控制家中空调、窗帘、热水器、花洒等智能设备的开关,并能通过视频查看家中情景。 2、摄像头进行图片采集、温湿度传感器进行温度采集并将信息传输到客户端并实现实时显示。
资源推荐
资源详情
资源评论
收起资源包目录
智能家居系统.rar (66个子文件)
客户端(QT)
build-smartHome-Desktop_Qt_5_5_1_MinGW_32bit-Debug
Makefile 21KB
release
Makefile.Debug 52KB
debug
moc_widget.cpp 5KB
moc_dialog.o 183KB
smartHome.exe 1.33MB
widget.o 360KB
dialog.o 328KB
main.o 331KB
moc_widget.o 190KB
moc_dialog.cpp 4KB
ui_widget.h 7KB
ui_dialog.h 5KB
Makefile.Release 52KB
build-picture-Desktop_Qt_5_5_1_MinGW_32bit-Debug
smartHome
widget.ui 6KB
widget.cpp 7KB
smartHome.pro 452B
dialog.h 394B
main.cpp 255B
smartHome.pro.user 18KB
widget.h 1KB
smartHome.pro.user.991db12 18KB
dialog.cpp 563B
dialog.ui 3KB
userinterface.h 1KB
服务端
project
jpeglib.h 48KB
jconfig.h 2KB
test_adc.c 751B
1.yuyv 600KB
.main.c.swo 20KB
camera.c 5KB
tcp.h 920B
dev.c 1KB
test_led.c 1KB
dev.h 2KB
test_pwm.c 486B
jmorecfg.h 15KB
tcp.c 5KB
.main.c.swn 16KB
include
jpeglib.h 48KB
jconfig.h 2KB
tcp.h 920B
dev.h 2KB
jmorecfg.h 15KB
jerror.h 14KB
camera.h 1KB
jpegInclude
jpeglib.h 48KB
jconfig.h 2KB
jmorecfg.h 15KB
jerror.h 14KB
adc.h 164B
convert.h 355B
jpg.h 378B
.main.c.swp 12KB
srv.c 3KB
camera.h~ 1KB
jerror.h 14KB
camera.h 1KB
test_temp.c 948B
ceshi.out 30KB
adc.h 164B
convert.h 355B
main.c 4KB
camera.c~ 6KB
jpg.h 378B
test_key.c 587B
convert.c 8KB
共 66 条
- 1
资源评论
- 金山文档2023-07-24这个文件中提供的代码虽然简洁,但功能齐全,满足了我对智能家居系统的需求。
- 朱王勇2023-07-24这份文件的代码逻辑清晰,易于理解和阅读,为我带来了很大的便利。
- 刘璐璐璐璐璐2023-07-24文件中的代码实现了智能家居系统的基本功能,为我提供了一个很好的学习和实践平台。
- 阿汝娜老师2023-07-24这个文件提供了丰富的智能家居系统相关代码,让我在实习中受益匪浅。
- 我就是月下2023-07-24非常感谢作者分享这份文件,让我可以更好地了解和学习智能家居系统的开发。
lsy888520
- 粉丝: 38
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功