程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話完成對bmp格局圖片打碼

C說話完成對bmp格局圖片打碼

編輯:關於C++

C說話完成對bmp格局圖片打碼。本站提示廣大學習愛好者:(C說話完成對bmp格局圖片打碼)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話完成對bmp格局圖片打碼正文


信任年夜家看到下面的題目必定覺的是下面嵬峨上的技巧,其實很簡略。
條件預備:一張bmp格局的圖片,假如沒有的話,可以用Windows的繪圖軟件來才裁剪。設置像素年夜小為(1024,768);
法式道理:將圖片讀入數組,然後給數組的指定地位存入隨機數,最初再寫入文件,如許圖片就響應的地位就被置為亂碼了。

源代碼:

<span >#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#include<unistd.h> 
#include<errno.h> 
#include<sys/types.h> 
#include<sys/stat.h> 
#include<fcntl.h> 
 
 
#define WIDTH  1024 
#define HEIGHT 768 
#define BPP 24 
#define BYTES  (BPP / 8) 
#define HEADER 54  
 
int main(int argc,char* argv[]) 
{ 
  int xoff,yoff,width,height; 
  int fd; 
  int i,j,k; 
  int offset; 
  unsigned char pix[BYTES];   
 
 
   
 
 
  if(argc!=6) 
  { 
    printf("Usage: %s filename xoff yoff width height\n",argv[0]); 
    exit(EXIT_FAILURE); 
  } 
   
  xoff=atoi(argv[2]); 
  yoff=atoi(argv[3]); 
  width=atoi(argv[4]); 
  height=atoi(argv[5]); 
 
 
  xoff=HEIGHT -xoff; 
  yoff=WIDTH - yoff; 
   
   
 
 
  fd=open(argv[1],O_WRONLY); 
  if(fd==-1) 
  { 
    perror("open"); 
    exit(EXIT_FAILURE); 
  } 
 
 
  for(i=xoff;i > xoff - height;i--) 
  { 
    for(j=yoff;j > yoff - width;j--) 
    { 
      offset = HEADER + (i * WIDTH -j )*BYTES; 
      lseek(fd, offset, SEEK_SET); 
      for(k=0; k<BYTES; k++) 
      { 
        pix[j] = random(); 
        write(fd ,&pix[j] ,1); 
      } 
    } 
  } 
  close(fd); 
  return 0; 
}</span>

 輸出格局:
參數說明: banner.bmp 是圖片文件的文件名,100 100是打碼的地位,500 500 是打碼的年夜小。(注:源法式和文件名在統一文件夾下)

原始圖片以下:

履行源法式事後,圖片以下:

以上就是本文的全體內容,願望對年夜家進修C說話法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved