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

📄 lzwmain.c

📁 This is code tutorial for image processing include:histogram,sketon....
💻 C
字号:


/*****************************************************
 *
 * File: lzwmain.c
 * Author: Dwayne Phillips
 * Compiler: Microsoft C 6.0
 * Functions: main
 *
 * Purpose: Main routine for LZW data compression and
 *          decompression program.
 *
 * Procedure:
 *   usage: lzw [-d] input output
 *   where for compression you enter
 *   lzw normal_file compressed_file
 *   and for decompression you enter
 *   lzw -d compressed_file normal_file
 *
 *   A. Read in the command line arguments.
 *   B. If too many or too few arguments, quit.
 *   C. If argc == 4 and argv[1] == -d, decompress.
 *   D. If argc == 3, compress.
 *
 * Date: October 1991
 *
******************************************************/


#include "d:\cips\lzwinc.h"



main(argc, argv)
   int  argc;
   char *argv[];
{
   char  input_file_name[80],
         output_file_name[80],
         r[80];

   int i,
       in_file_desc,
       j,
       out_file_desc;

   long displacement;

   short s;

   struct item string_table[TABLE];

/* B. */
   if(argc < 3   ||   argc > 4){
      printf("\n\nusage: lzw [-d] input output\n\n");
      exit(1);
   }

/* C. */
   if(argc == 4   &&
      (strcmp(argv[1], "-d")) == 0){
      strcpy(output_file_name, argv[3]);
      strcpy(input_file_name, argv[2]);
      in_file_desc = open(input_file_name,
                          O_RDWR | O_CREAT | O_BINARY,
                          S_IWRITE);
      if((displacement = lseek(in_file_desc, 0L, 2)) < 2){
         printf("\nLZW: ERROR - input file is empty");
         exit(0);
      }

      displacement = lseek(in_file_desc, 0L, 0);
      out_file_desc = open(output_file_name,
                           O_RDWR | O_CREAT | O_BINARY,
                           S_IWRITE);
      setup(string_table);
      printf("\nLZW: Decompressing %s --> %s",
             input_file_name, output_file_name);
      decompress(string_table, in_file_desc, out_file_desc);
      close(in_file_desc);
      close(out_file_desc);
   }

/* D. */
   if(argc == 3){
      strcpy(input_file_name, argv[1]);
      strcpy(output_file_name, argv[2]);

      in_file_desc = open(input_file_name,
                          O_RDWR | O_CREAT | O_BINARY,
                          S_IWRITE);
      if((displacement = lseek(in_file_desc, 0L, 2)) < 2){
         printf("\nLZW: ERROR - input file is empty");
         exit(0);
      }

      displacement = lseek(in_file_desc, 0L, 0);
      out_file_desc = open(output_file_name,
                           O_RDWR | O_CREAT | O_BINARY,
                           S_IWRITE);
      setup(string_table);

      printf("\nLZW: Compressing %s --> %s",
             input_file_name, output_file_name);

      compress(string_table, in_file_desc, out_file_desc);

      LZWTEST( printf("\nLZW: TEST: Hit Enter to continue"); )
      LZWTEST( gets(r); )
      LZWTEST( display_table(string_table); )
      close(in_file_desc);
      close(out_file_desc);
   }

}

⌨️ 快捷键说明

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