Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #define MAX 1119756
- #define latime 748
- #define inaltime 499
- unsigned char buffer[MAX];
- unsigned char buff[inaltime][3*latime];
- unsigned char aux;
- void inversare_img(int i, int j){
- //printf("%d %d\n",buffer[0],buffer[1]);
- for(i=0;i<MAX/2;i+=3){
- for(int j=0;j<3;j++){
- aux=buffer[i+j];
- buffer[i+j]= buffer[MAX - i+j];
- buffer[MAX-i+j]=aux;
- }
- }
- //printf("%d %d\n",buffer[MAX-1],buffer[MAX]);
- }
- void color_swap(int i){
- for(i=0;i<MAX;i++){
- if( (i+1)%3 == 0 || (i+2)%3 == 0)
- buffer[i]=255-buffer[i];
- }
- }
- void negativ(int i){
- for(i=0;i<MAX;i++){
- buffer[i]=255-buffer[i];
- }
- }
- void negativ_sc(int i){
- for(i=0;i<MAX;i+=3){
- buffer[i]=255-buffer[i];
- }
- }
- void old(int i){
- for(i=0;i<MAX;i++){
- if((i+1) % 3 == 0 || (i+2) % 3 == 0)
- buffer[i]=128;
- }
- }
- void blur_slab(int i){
- for(i=3*(latime+1);i<MAX - (3*(latime+1)); i+=3){
- buffer[i]=((int)(buffer[i+3]+buffer[i-3]))/2;
- }
- }
- void blur_puternic(int i){
- for(i=3*(latime+1);i<MAX - (3*(latime+1)); i+=3){
- buffer[i]=((int)(buffer[i+3]+buffer[i-3]))/2;
- buffer[i]=((int)(buffer[i-3]+buffer[i+3]+buffer[i+3*latime]+buffer[i-3*latime]+buffer[i+3*latime+3]+buffer[i+3*latime-3]+buffer[i-3*latime+3]+buffer[i-3*latime-3]))/8;
- }
- }
- void mut_in_matr(int m, int n, int j){
- j=0;
- for(m=0;m<inaltime;m++){
- for(n=0;n<(3*latime);n++){
- buff[m][n]=buffer[j++];
- }
- }
- printf("%d %d %d %d",buff[0][0],buffer[0],buff[inaltime-1][3*latime-1],buffer[MAX-1]);
- }
- void mut_in_vec(int m,int n,int j){
- j=0;
- for(m=0;m<inaltime;m++)
- for(n=0;n<3*latime;n++)
- buffer[j++]=buff[m][n];
- }
- void blur_ponderat(int i, int j){
- for(i=1;i<inaltime-1;i++){
- for(j=3;j<(3*latime)-3;j+=3){
- buff[i][j]=((int)(5*buff[i-1][j]+5*buff[i+1][j]+5*buff[i][j+3]+5*buff[i][j-3]+3*buff[i-1][j-3]+3*buff[i-1][j+3]+3*buff[i+1][j-3]+3*buff[i+1][j+3]))/32;
- }
- }
- }
- int main(){
- FILE *f,*g;
- int i,j,m=0,n=0,opt,c=0;
- f=fopen("/home/mihai/Desktop/Test.yuv","rb");
- g=fopen("/home/mihai/Desktop/Test2.yuv","wb");
- do{
- fread(buffer,sizeof(buffer),1,f);
- printf("\n\n1.Inversare imagine\n2.Schimbare culoare\n3.Negativ_1\n4.Negativ_2\n5.Basic Blur\n6.Blur Aritmetic\n7.Blur ponderat\n8.Reset Img\n0.Iesire\nAlege:");
- scanf("%d",&opt);
- switch(opt){
- case 1:{
- inversare_img(i,j);
- break;
- }
- case 2:{
- color_swap(i);
- break;
- }
- case 3:{
- negativ(i);
- break;
- }
- case 4:{
- negativ_sc(i);
- break;
- }
- case 5:{
- blur_slab(i);
- break;
- }
- case 6:{
- blur_puternic(i);
- break;
- }
- case 7:{
- mut_in_matr(m,n,j);
- blur_ponderat(i,j);
- mut_in_vec(m,n,j);
- break;
- }
- case 8:{
- fread(buffer,sizeof(buffer),1,f);
- break;
- }
- default:{
- printf("Comanda gresita\n");
- break;
- }
- case 0:{
- printf("Ai iesit");
- break;
- }
- }
- fwrite(buffer,sizeof(buffer),1,g);
- }while(opt!=0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement