📄 imageprocess.c
字号:
//-----------------------------------------------------------------------------// Date: 2007/03/30 // Description: main.c for slideshow project//-----------------------------------------------------------------------------//#include <xparameters.h>//#include <xio.h>
//#include "sleep.h"
//#include "FileSystem.h"#include "PixelProc.h"
#include "standdef.h"//-----------------------------------------------------------------------------// Global structure definition
GraphicProperty srcbmp[4],destbmp;
unsigned char current;
unsigned char threshold;
unsigned char brightness;
unsigned char contrast;
unsigned char scale;
unsigned char multipic;
unsigned char rotate;
//-----------------------------------------------------------------------------
int imageprocess(){ char s; // system initialization
// XCache_EnableDCache(0xF000000F); // XCache_EnableICache(0xF000000F);
srcbmp[0].AddressOffset = IMAGE_BASEADDR;
srcbmp[1].AddressOffset = IMAGE_BASEADDR+0x200000;
srcbmp[2].AddressOffset = IMAGE_BASEADDR+0x200000*2;
srcbmp[3].AddressOffset = IMAGE_BASEADDR+0x200000*3;
destbmp.AddressOffset = IMAGE_BASEADDR+0x200000*4;
// get source image from CF card// print("Program running.\r\n");// get_images(srcbmp);// print("\r\nReads done.\r\n"); // set TFT_VGA core parameters// XIo_Out32(VGA_Core_BaseAddrReg, srcbmp[0].AddressOffset);// XIo_Out32(VGA_Core_EnableReg, 0x1); // turn on display
// infinite loop for main function
do{
// wait user command
s = 'm';//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
switch(s) {
case 'm':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
MirrorProc(&srcbmp[current], &destbmp);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Mirror Effects\r\n"); break;
case 'f':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
FlipProc(&srcbmp[current], &destbmp);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Flip Effects\r\n"); break;
case 'i':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
InvertProc(&srcbmp[current], &destbmp);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Invert Effects\r\n"); break;
case 't':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
threshold = 12;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
ThresholdProc(&srcbmp[current], &destbmp, threshold);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Threshold Effects\r\n");
break;
case 'b':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
brightness = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
BrightnessProc(&srcbmp[current], &destbmp, brightness);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Brightness Effects\r\n");
break;
case 'c':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
contrast = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
ContrastProc(&srcbmp[current], &destbmp, contrast);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : contrast Effects\r\n");
break;
case 's':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
scale = 50;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
if (scale > 100) ZoominProc(&srcbmp[current], &destbmp, scale);
else ZoomoutProc(&srcbmp[current], &destbmp, scale);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Scale\r\n");
break;
case 'p':
multipic = 1;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
MultiPicProc(&srcbmp[0], &destbmp);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Multi-Picture\r\n");
break;
case 'r':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
rotate = 50;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
RotationProc(&srcbmp[current], &destbmp, rotate);
// XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
// print("Command : Rotation\r\n");
break;
case 'o':
current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
// XIo_Out32(VGA_Core_BaseAddrReg, srcbmp[current].AddressOffset);
// print("Command : Original Picture\r\n"); break;
default:
// print("Invalid Command!\r\n");
break;
}
} while( s != 'q' );
// main function termination
// print("\r\nSystem Terminated.\r\n");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -