⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compress_pic.c

📁 LabwindowsCVI编写的一图片压缩小程序。
💻 C
字号:
#include <utility.h>
//#include "ImageOcx.h"
#include "toolbox.h"
#include "compress_pic.h"
static int bitmapID;
static int panelHandle;
int main (int argc, char *argv[])
{
 if (InitCVIRTE (0, argv, 0) == 0)
  return -1; /* out of memory */
 if ((panelHandle = LoadPanel (0, "compress_pic.uir", PANEL)) < 0)
  return -1;
 DisplayPanel (panelHandle);
 RunUserInterface ();
 DiscardPanel (panelHandle);
 
 if (bitmapID)
 {
  DiscardBitmap (bitmapID);
 }
 
 return 0;
}

int CVICALLBACK PanelCB (int panel, int event, void *callbackData,
		int eventData1, int eventData2)
{
	switch(event) {
		case EVENT_CLOSE:
			QuitUserInterface (0);
			break;
	}
	return 0;
}

int CVICALLBACK bmpCB (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 int sel;
 char path[MAX_PATHNAME_LEN];
 long filesize;     
 
 switch (event)
 {
  case EVENT_COMMIT:
   sel = FileSelectPopup ("", "*.bmp", "*.bmp", "打开位图", VAL_LOAD_BUTTON, 0, 1, 1, 1, path);
   if (sel > 0)
   {
    
    GetBitmapFromFile (path, &bitmapID);
    
    
    CanvasDrawBitmap (panelHandle, PANEL_CANVAS_ORGINAL, bitmapID, VAL_ENTIRE_OBJECT, VAL_ENTIRE_OBJECT);
    
    GetFileSize (path, &filesize);  
    SetCtrlVal (panelHandle, PANEL_NUMERIC_BMP, filesize);
   }
   break;
 }
 return 0;
}
int CVICALLBACK jpegCB (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 int sel;
 char path[MAX_PATHNAME_LEN];
 long filesize;    
 
 switch (event)
 {
  case EVENT_COMMIT:
   if (bitmapID)
   {
    int ration;
    GetCtrlVal (panelHandle, PANEL_NUMERIC_RATION, &ration);
    sel = FileSelectPopup ("", "*.jpeg", "*.jpeg", "保存JPG图像", VAL_SAVE_BUTTON, 0, 1, 1, 1, path);
    if (sel > 0)
    {
     SaveBitmapToJPEGFile (bitmapID, path, JPEG_PROGRESSIVE, ration);
     DisplayImageFile (panelHandle, PANEL_PICTURE_CONVERT, path);
   
     GetFileSize (path, &filesize);  
     SetCtrlVal (panelHandle, PANEL_NUMERIC_JPGE, filesize);
    }
   }
   break;
 }
 return 0;
}
int CVICALLBACK QuitCallback (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 switch (event)
 {
  case EVENT_COMMIT:
   QuitUserInterface (0);
   break;
 }
 return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -