void P6::Monochrome(const char* filename) { if (isGrayMonochrome() == true) { cout << "The image is already monochrome \n"; return; } else { char* newName = ChangeFileName(filename, "_monochrome.ppm"); ofstream outFile(newName, ios::out); if (!outFile) { cerr << "Cannot write P6 file \n"; return; } char magic_pbm[3] = "P6"; outFile << magic_pbm << endl << getWidth() << " " << getHeight() << endl << getMaxNum() << endl; int r = 0, g = 0, b = 0; for (int i = 0; i < getHeight(); i++) { for (int j = 0; j < getWidth(); j++) { r = getPixels()[i][j].getRed(); g = getPixels()[i][j].getGreen(); b = getPixels()[i][j].getBlue(); int gray = grayscale(r, g, b); int m = monochrome(gray); outFile.write((const char*)&m, sizeof(char)); outFile.write((const char*)&m, sizeof(char)); outFile.write((const char*)&m, sizeof(char)); } } outFile.flush(); outFile.close(); delete[] newName; } }
void P6::Grayscale(const char* filename) { if (isGrayMonochrome() == true) { cout << "The image is already grayscale \n"; return; } else { char* newName = ChangeFileName(filename, "_grayscale.ppm"); ofstream outFile(newName, ios::out | ios::binary); if (!outFile) { cerr << "Cannot write P6 file \n"; return; } char magic_pgm[3] = "P6"; outFile << magic_pgm << endl << width << " " << height << endl << max_num << endl; for (int i = 0; i < getHeight(); i++) { for (int j = 0; j < getWidth(); j++) { r = getPixels()[i][j].getRed(); g = getPixels()[i][j].getGreen(); b = getPixels()[i][j].getBlue(); int gray = grayscale(r, g, b); outFile.write((const char*)&gray, sizeof(Color) / 3); outFile.write((const char*)&gray, sizeof(Color) / 3); outFile.write((const char*)&gray, sizeof(Color) / 3); } } outFile.flush(); outFile.close(); delete[] newName; } }
void CDoc::KannadaParse() { int Trace = 0,i1=0; FILE *parse; char c='0'; char TempArray[5000]; char Parse[100]; char p[20] = "parse.iis"; do { c = Path.GetAt(i1); if(c == '$') break; Parse[i1]=c; i1++; }while(c != '$'); Parse[i1] = '\0'; strcat(Parse,p); Parse[strlen(Parse)]= '\0'; parse = fopen(Parse,"w"); CString str; int i=0,j,k,start=0,end=0,Word_Begin=0,Word_End=0,l=0; int Total_Length = 0; //while(m_strKannadaData.GetAt(Total_Length) != '\0') // Total_Length++; Total_Length=m_strKannadaData.GetLength(); //TRACE(" \n Length of m_strKannada = %d",Total_Length); //TRACE("\n m_strKanndata = %s, l = %d",m_strKannadaData,m_strKannadaData.GetLength()); int Length = 0; CountUnit=0,CountSpace=0; index=0,index2=0; char *Array = m_strKannadaData.GetBuffer(Length+10000); int countword = 0; TRACE("\n In Parse %d ",Total_Length); for(i=0;i<1000;i++) { CUnitArray[i]=-1; CSpace[i]=-1; } do { start=0; end=0; if(Array[l] == ' ' || Array[l] == '\n') l++; Word_Begin=l; l=Word_End; while(Array[l] != ' ' && l<Total_Length) { l++; if(Array[l] == '\n') break; } if(Array[l] == ' ' || Array[l] == '\n')// || Array[l] == '.') { l++; while(Array[l] == ' ' || Array[l] == '\n' || Array[l] == '.') l++; } Word_End=l; Length = Word_End - Word_Begin; countword++; TRACE("\n Length =%d,End = %d, Begin = %d",Length,Word_End,Word_Begin); /*if(countword > 1 && Flagnumber == 0 ) { //AfxMessageBox("Enter Single word"); Flagquit=1; break; }*/ /*else if(countword > 4 && Flagnumber == 1) { //AfxMessageBox("Enter Single word"); Flagnumber=0; Flagquit=1; break; }*/ fprintf(parse,"x "); CountSpace=CountUnit; CountUnit++; int DOT=0,QUEST=0,COMMA=0,EXCLAIM=0,QUOTES=0; for(i=Word_Begin,j=0;i<Word_End;i++,j++) { DOT=0; QUEST=0; COMMA=0; EXCLAIM=0; QUOTES=0; if(Array[i] == '.') { DOT=1; //TRACE(" \ndot = %d",DOT); break; } else if(Array[i] == '?') { QUEST=1; //TRACE(" \nQ = %d",QUEST); break; } else if(Array[i] == '!') { EXCLAIM=1; //TRACE(" \nEx = %d",EXCLAIM); break; } else if(Array[i] == ',') { COMMA=1; //TRACE(" \nCom = %d",COMMA); break; } if(Array[i] == ' ' || Array[i] == '\n') { j--; continue; } TempArray[j] = Array[i]; } TempArray[j] = '\0'; //TRACE("\t %s %d -->\t ",TempArray,j-1); if(j-1 == -1) continue; Length = j; i=0;j=0; FlagWordEnd=0; FlagWordBegin=1; do { if(((TempArray[i] != 'a') && (i < Length)) && ((TempArray[i] != 'e') && (i < Length)) && ((TempArray[i] != 'i') && (i < Length)) && ((TempArray[i] != 'o') && (i < Length)) && ((TempArray[i] != 'u') && (i < Length))) { start=i; do { i++; }while(((TempArray[i] != 'a') && (i < Length)) && ((TempArray[i] != 'e') && (i < Length)) && ((TempArray[i] != 'i') && (i < Length)) && ((TempArray[i] != 'o') && (i < Length)) && ((TempArray[i] != 'u') && (i < Length)) && ((TempArray[i] != ' ') && (i < Length)) && ((TempArray[i] != '\n') && (i < Length))); end=i-1; if(TempArray[i] == 'a') { if(TempArray[i+1] == 'e' || TempArray[i+1] == 'o') end = i+2; else if(TempArray[i+1] == 'a' || TempArray[i+1] == 'i' || TempArray[i+1] == 'u') end = i+1; else end = i; } if(TempArray[i] == 'i' || TempArray[i] == 'o' || TempArray[i] == 'u' || TempArray[i] == 'e') { if((TempArray[i+1] == 'i' || TempArray[i+1] == 'o' || TempArray[i+1] == 'u' || TempArray[i+1] == 'e') && (i+1 < Length)) end = i+1; else end=i; } } else { switch(TempArray[i]) { case 'a' : start=i; i++; if(TempArray[i] == 'e' || TempArray[i] == 'o') i=i+2; if(TempArray[i] == 'a') i=i+1; do { i++; }while(((TempArray[i] != 'a') && (i < Length)) && ((TempArray[i] != 'e') && (i < Length)) && ((TempArray[i] != 'i') && (i < Length)) && ((TempArray[i] != 'o') && (i < Length)) && ((TempArray[i] != 'u') && (i < Length)) && ((TempArray[i] != ' ') && (i < Length)) && ((TempArray[i] != '\n') && (i < Length))); end=i-1; if(end>=Length); else { if(TempArray[i] == 'a') { if(TempArray[i+1] == 'e' || TempArray[i+1] == 'o') end = i+2; else if((TempArray[i+1] == 'a' || TempArray[i+1] == 'i' || TempArray[i+1] == 'u') && ((i+1)<Length)) end = i+1; else end = i; //TRACE(" < In 1> ",i,Length); } if(TempArray[i] == 'i' || TempArray[i] == 'o' || TempArray[i] == 'u' || TempArray[i] == 'e') { if((TempArray[i+1] == 'i' || TempArray[i+1] == 'o' || TempArray[i+1] == 'u' || TempArray[i+1] == 'e') && (i+1 < Length)) end = i+1; else end=i; //TRACE(" < In 2> ",i,Length); } } if(TempArray[end] == ' ' || TempArray[end] == '\n') i=end; break; case 'i' : Trace = 2; start=i; i++; if(TempArray[i] == 'i') i=i+1; do { i++; }while(((TempArray[i] != 'a') && (i < Length)) && ((TempArray[i] != 'e') && (i < Length)) && ((TempArray[i] != 'i') && (i < Length)) && ((TempArray[i] != 'o') && (i < Length)) && ((TempArray[i] != 'u') && (i < Length)) && ((TempArray[i] != ' ') && (i < Length)) && ((TempArray[i] != '\n') && (i < Length))); end=i-1; if(end>=Length); else { if(TempArray[i] == 'a') { if(TempArray[i+1] == 'e' || TempArray[i+1] == 'o') end = i+2; else if(TempArray[i+1] == 'a' || TempArray[i+1] == 'i' || TempArray[i+1] == 'u') end = i+1; else end = i; } if(TempArray[i] == 'i' || TempArray[i] == 'o' || TempArray[i] == 'u' || TempArray[i] == 'e') { if((TempArray[i+1] == 'i' || TempArray[i+1] == 'o' || TempArray[i+1] == 'u' || TempArray[i+1] == 'e') && (i+1 < Length)) end = i+1; else end=i; } } if(TempArray[end] == ' ' || TempArray[end] == '\n') i=end; break; case 'e' : Trace = 3; start=i; i++; if(TempArray[i] == 'e') i=i+1; do { i++; }while(((TempArray[i] != 'a') && (i < Length)) && ((TempArray[i] != 'e') && (i < Length)) && ((TempArray[i] != 'i') && (i < Length)) && ((TempArray[i] != 'o') && (i < Length)) && ((TempArray[i] != 'u') && (i < Length)) && ((TempArray[i] != ' ') && (i < Length)) && ((TempArray[i] != '\n') && (i < Length))); end=i-1; if(end>=Length); else { if(TempArray[i] == 'a') { if(TempArray[i+1] == 'e' || TempArray[i+1] == 'o') end = i+2; else if(TempArray[i+1] == 'a' || TempArray[i+1] == 'i' || TempArray[i+1] == 'u') end = i+1; else end = i; } if(TempArray[i] == 'i' || TempArray[i] == 'o' || TempArray[i] == 'u' || TempArray[i] == 'e') { if((TempArray[i+1] == 'i' || TempArray[i+1] == 'o' || TempArray[i+1] == 'u' || TempArray[i+1] == 'e') && (i+1 < Length)) end = i+1; else end=i; } } if(TempArray[end] == ' ' || TempArray[end] == '\n') i=end; break; case 'o' : Trace = 4; start=i; i++; if(TempArray[i] == 'o') i=i+1; do { i++; }while(((TempArray[i] != 'a') && (i < Length)) && ((TempArray[i] != 'e') && (i < Length)) && ((TempArray[i] != 'i') && (i < Length)) && ((TempArray[i] != 'o') && (i < Length)) && ((TempArray[i] != 'u') && (i < Length)) && ((TempArray[i] != ' ') && (i < Length)) && ((TempArray[i] != '\n') && (i < Length))); end=i-1; if(end>=Length); else { if(TempArray[i] == 'a') { if(TempArray[i+1] == 'e' || TempArray[i+1] == 'o') end = i+2; else if(TempArray[i+1] == 'a' || TempArray[i+1] == 'i' || TempArray[i+1] == 'u') end = i+1; else end = i; } if(TempArray[i] == 'i' || TempArray[i] == 'o' || TempArray[i] == 'u' || TempArray[i] == 'e') { if((TempArray[i+1] == 'i' || TempArray[i+1] == 'o' || TempArray[i+1] == 'u' || TempArray[i+1] == 'e') && (i+1 < Length)) end = i+1; else end=i; } } if(TempArray[end] == ' ' || TempArray[end] == '\n') i=end; break; case 'u' : Trace = 5; start=i; i++; if(TempArray[i] == 'u') i=i+1; do { i++; }while(((TempArray[i] != 'a') && (i < Length)) && ((TempArray[i] != 'e') && (i < Length)) && ((TempArray[i] != 'i') && (i < Length)) && ((TempArray[i] != 'o') && (i < Length)) && ((TempArray[i] != 'u') && (i < Length)) && ((TempArray[i] != ' ') && (i < Length)) && ((TempArray[i] != '\n') && (i < Length))); end=i-1; if(end>=Length); else { if(TempArray[i] == 'a') { if(TempArray[i+1] == 'e' || TempArray[i+1] == 'o') end = i+2; else if(TempArray[i+1] == 'a' || TempArray[i+1] == 'i' || TempArray[i+1] == 'u') end = i+1; else end = i; } if(TempArray[i] == 'i' || TempArray[i] == 'o' || TempArray[i] == 'u' || TempArray[i] == 'e') { if((TempArray[i+1] == 'i' || TempArray[i+1] == 'o' || TempArray[i+1] == 'u' || TempArray[i+1] == 'e') && (i+1 < Length)) end = i+1; else end=i; } } if(TempArray[end] == ' ' || TempArray[end] == '\n') { i=end; AfxMessageBox("In space"); } break; } } if(end==Length) end=end-1; m_cToConcatenate = new char [end-start+1]; k=0; for(j=start;j<=end;j++) { if(isalnum(TempArray[j])) { //to remove consecutive vowels if(j+1 <= end && (TempArray[j] == 'a' && TempArray[j+1] == 'a')) { if(j+3 <= end && ((TempArray[j+2] == 'i' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'u' && TempArray[j+3] == 'u') || (TempArray[j+2] == 'e' && TempArray[j+3] == 'e') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'o' && TempArray[j+3] == 'o') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'u'))) j=j+2; else if(j+2 <= end && (TempArray[j+2] == 'e' || TempArray[j+2] == 'o' || TempArray[j+2] == 'i' || TempArray[j+2] == 'u')) j=j+2; } else if(j+1 <= end && (TempArray[j] == 'a' && (TempArray[j+1] == 'e' || TempArray[j+1] == 'o'))) j=j+1; else if(j+2 <= end && (TempArray[j] == 'a' && ((TempArray[j+1] == 'i' && TempArray[j+2] == 'i') || (TempArray[j+1] == 'u' && TempArray[j+2] == 'u') || (TempArray[j+1] == 'e' && TempArray[j+2] == 'e') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'i') || (TempArray[j+1] == 'o' && TempArray[j+2] == 'oo') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'u') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'a')))) j=j+1; if(j+1 <= end && (TempArray[j] == 'i' && TempArray[j+1] == 'i')) { if(j+3 <= end && ((TempArray[j+2] == 'a' && TempArray[j+3] == 'a') || (TempArray[j+2] == 'u' && TempArray[j+3] == 'u') || (TempArray[j+2] == 'e' && TempArray[j+3] == 'e') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'o' && TempArray[j+3] == 'o') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'u')) ) j=j+2; else if(j+2 <= end && (TempArray[j+2] == 'a' || TempArray[j+2] == 'i' || TempArray[j+2] == 'u' || TempArray[j+2] == 'e' || TempArray[j+2] == 'o')) j=j+2; } else if(TempArray[j] == 'i') { if(j+2 <= end && ((TempArray[j+1] == 'a' && TempArray[j+2] == 'a') || (TempArray[j+1] == 'u' && TempArray[j+2] == 'u') || (TempArray[j+1] == 'e' && TempArray[j+2] == 'e') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'i') || (TempArray[j+1] == 'o' && TempArray[j+2] == 'o') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'u'))) j=j+1; else if(j+1 <= end && (TempArray[j+1] == 'a' || TempArray[j+1] == 'u' || TempArray[j+1] == 'e' || TempArray[j+1] == 'o')) j=j+1; } if(j+1 <= end && (TempArray[j] == 'u' && TempArray[j+1] == 'u')) { if(j+3 <= end && ((TempArray[j+2] == 'a' && TempArray[j+3] == 'a') || (TempArray[j+2] == 'u' && TempArray[j+3] == 'u') || (TempArray[j+2] == 'e' && TempArray[j+3] == 'e') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'o' && TempArray[j+3] == 'o') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'u')) ) j=j+2; else if(j+2 <= end && (TempArray[j+2] == 'a' || TempArray[j+2] == 'i' || TempArray[j+2] == 'u' || TempArray[j+2] == 'e' || TempArray[j+2] == 'o')) j=j+2; } else if(TempArray[j] == 'u') { if(j+2 <= end && ((TempArray[j+1] == 'a' && TempArray[j+2] == 'a') || (TempArray[j+1] == 'u' && TempArray[j+2] == 'u') || (TempArray[j+1] == 'e' && TempArray[j+2] == 'e') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'i') || (TempArray[j+1] == 'o' && TempArray[j+2] == 'o') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'u'))) j=j+1; else if(j+1 <= end && (TempArray[j+1] == 'a' || TempArray[j+1] == 'i' || TempArray[j+1] == 'e' || TempArray[j+1] == 'o')) j=j+1; } if(j+1 <= end && (TempArray[j] == 'e' && TempArray[j+1] == 'e')) { if(j+3 <= end && ((TempArray[j+2] == 'a' && TempArray[j+3] == 'a') || (TempArray[j+2] == 'u' && TempArray[j+3] == 'u') || (TempArray[j+2] == 'e' && TempArray[j+3] == 'e') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'o' && TempArray[j+3] == 'o') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'u')) ) j=j+2; else if(j+2 <= end && (TempArray[j+2] == 'a' || TempArray[j+2] == 'i' || TempArray[j+2] == 'u' || TempArray[j+2] == 'e' || TempArray[j+2] == 'o')) j=j+2; } else if(TempArray[j] == 'e') { if(j+2 <= end && ((TempArray[j+1] == 'a' && TempArray[j+2] == 'a') || (TempArray[j+1] == 'u' && TempArray[j+2] == 'u') || (TempArray[j+1] == 'e' && TempArray[j+2] == 'e') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'i') || (TempArray[j+1] == 'o' && TempArray[j+2] == 'o') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'u'))) j=j+1; else if(j+1 <= end && (TempArray[j+1] == 'a' || TempArray[j+1] == 'i' || TempArray[j+1] == 'u' || TempArray[j+1] == 'o')) j=j+1; } if(j+1 <= end && (TempArray[j] == 'o' && TempArray[j+1] == 'o')) { if(j+3 <= end && ((TempArray[j+2] == 'a' && TempArray[j+3] == 'a') || (TempArray[j+2] == 'u' && TempArray[j+3] == 'u') || (TempArray[j+2] == 'e' && TempArray[j+3] == 'e') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'o' && TempArray[j+3] == 'o') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'u')) ) j=j+2; else if(j+2 <= end && (TempArray[j+2] == 'a' || TempArray[j+2] == 'i' || TempArray[j+2] == 'u' || TempArray[j+2] == 'e' || TempArray[j+2] == 'o')) j=j+2; } else if(TempArray[j] == 'o') { if(j+2 <= end && ((TempArray[j+1] == 'a' && TempArray[j+2] == 'a') || (TempArray[j+1] == 'u' && TempArray[j+2] == 'u') || (TempArray[j+1] == 'e' && TempArray[j+2] == 'e') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'i') || (TempArray[j+1] == 'o' && TempArray[j+2] == 'o') || (TempArray[j+1] == 'a' && TempArray[j+2] == 'u'))) j=j+1; else if(j+1 <= end && (TempArray[j+1] == 'a' || TempArray[j+1] == 'i' || TempArray[j+1] == 'u' || TempArray[j+1] == 'e')) j=j+1; } if(j+1 <= end && (TempArray[j] == 'a' && TempArray[j+1] == 'i')) { if(j+3 <= end && ((TempArray[j+2] == 'a' && TempArray[j+3] == 'a') || (TempArray[j+2] == 'i' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'u' && TempArray[j+3] == 'u') || (TempArray[j+2] == 'e' && TempArray[j+3] == 'e') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'o' && TempArray[j+3] == 'o') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'u'))) j=j+2; else if(j+2 <= end &&(TempArray[j+2] == 'a' || TempArray[j+2] == 'i' || TempArray[j+2] == 'u' || TempArray[j+2] == 'e' || TempArray[j+2] == 'o')) j=j+2; } if(j+1 <= end && (TempArray[j] == 'a' && TempArray[j+1] == 'u')) { if(j+3 <= end && ((TempArray[j+2] == 'a' && TempArray[j+3] == 'a') || (TempArray[j+2] == 'i' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'u' && TempArray[j+3] == 'u') || (TempArray[j+2] == 'e' && TempArray[j+3] == 'e') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'i') || (TempArray[j+2] == 'o' && TempArray[j+3] == 'o') || (TempArray[j+2] == 'a' && TempArray[j+3] == 'u'))) j=j+2; else if(j+2 <= end &&(TempArray[j+2] == 'a' || TempArray[j+2] == 'i' || TempArray[j+2] == 'u' || TempArray[j+2] == 'e' || TempArray[j+2] == 'o')) j=j+2; } m_cToConcatenate[k] = TempArray[j]; k++; } } m_cToConcatenate[k]='\0'; int size = ChangeFileName(k); if(size != 0) { fprintf(parse,"%s ",m_sFileName); CountUnit++; } }while(i<Length-1); if(DOT == 1) { // fprintf(parse,"x "); fprintf(parse,"xd "); CUnitArray[index]=CountUnit; if(index == 0) CSpace[index2]=CountSpace+2; else CSpace[index2]=CountSpace+2; index2++; index++; DOT = 0; CountUnit++; } else if(QUEST == 1) { fprintf(parse,"xq "); CUnitArray[index]=CountUnit; if(index == 0) CSpace[index2]=CountSpace+2; else CSpace[index2]=CountSpace+2; index2++; index++; CountUnit++; QUEST=0; } else if(EXCLAIM == 1) { fprintf(parse,"xe "); CUnitArray[index]=CountUnit; index++; CountUnit++; CSpace[index2]=CountSpace+2; index2++; EXCLAIM=0; } else if(COMMA == 1) { fprintf(parse,"xc "); CUnitArray[index]=CountUnit; index++; CountUnit++; CSpace[index2]=CountSpace+2; index2++; COMMA=0; } TRACE("\n countword = %d",countword); }while(l<Total_Length-1); fprintf(parse,"y"); fclose(parse); //TRACE("\nCount Unit = %d",CountUnit); /*for(i=0;i<index;i++) TRACE(" CUnit [i] = %d",CUnitArray[i]); for(i=0;i<index2;i++) TRACE(" CSpace [i] = %d",CSpace[i]);*/ for(i=0;i<index2;i++) TRACE(" CSpace [i] = %d,CUnitArray [i] = %d",CSpace[i],CUnitArray[i]); //delete [] m_cToConcatenate; TRACE("\nGoing out of Parse . . ."); return; }
VOID ExportPath::ChangeFileName( const ExportPath& OtherPath ) { ChangeFileName( (const CHAR*)OtherPath.GetFileNameWithoutExtension() ); }