fork download
  1. using namespace System;
  2. using namespace System::IO;
  3. using namespace System::Windows::Media::Imaging;
  4. using namespace System::Windows::Media;
  5. using namespace System::Windows::Forms;
  6. using namespace System::Collections;
  7. using namespace System::Collections::Generic;
  8. using namespace System::Drawing;
  9. using namespace System::Drawing::Imaging;
  10. [STAThreadAttribute]
  11. int main(int argc, char * argv[])
  12. {
  13. OpenFileDialog^ dlg = gcnew OpenFileDialog();
  14. dlg->Filter = "tif file(*.tif)|*.tif|All files(*.*)|*.*";
  15.  
  16. if (dlg->ShowDialog() == System::Windows::Forms::DialogResult::OK)
  17. {
  18. // Open a Stream and decode a TIFF image
  19. Stream^ imageStreamSource = gcnew FileStream(dlg->FileName, FileMode::Open, FileAccess::Read, FileShare::Read);
  20. TiffBitmapDecoder^ decoder = gcnew TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default);
  21.  
  22. //讀入tiff值
  23. BitmapSource^ bitmapSource = decoder->Frames[0];
  24.  
  25. //初始化
  26. Bitmap^ myDemoMap = gcnew Bitmap(bitmapSource->PixelWidth, bitmapSource->PixelHeight, System::Drawing::Imaging::PixelFormat::Format16bppGrayScale);
  27. BitmapData^ data = myDemoMap->LockBits(System::Drawing::Rectangle(0, 0, bitmapSource->PixelWidth, bitmapSource->PixelHeight), System::Drawing::Imaging::ImageLockMode::ReadWrite, System::Drawing::Imaging::PixelFormat::Format16bppGrayScale);
  28. int bytes = data->Stride * data->Height;
  29. array<unsigned char>^byteArray = gcnew array<Byte>(bytes);
  30.  
  31. //把tiff存到bitmapData中
  32. bitmapSource->CopyPixels(System::Windows::Int32Rect::Empty, data->Scan0, data->Height * data->Stride, data->Stride);
  33. myDemoMap->UnlockBits(data);
  34.  
  35. //把bitmapData轉存byteArray
  36. System::Runtime::InteropServices::Marshal::Copy(data->Scan0, byteArray, 0, bytes);
  37. //byteArray轉成bit
  38. BitArray^ bitArray = gcnew BitArray(byteArray);
  39. for (int i = 0; i < bitArray->Length; i+=16)
  40. {
  41. for (int j = 0; j < 12; j++)
  42. bitArray[i] = bitArray[i + j + 4];
  43. for (int j = 12; j < 16; j++)
  44. bitArray[i] = false;
  45. }
  46.  
  47. //bit轉回byteArray
  48. bitArray->CopyTo(byteArray, 0);
  49. //byteArray轉回bitmapData中
  50. System::Runtime::InteropServices::Marshal::Copy(byteArray, 0, data->Scan0, bytes);
  51.  
  52. myDemoMap->LockBits(System::Drawing::Rectangle(0, 0, bitmapSource->PixelWidth, bitmapSource->PixelHeight), System::Drawing::Imaging::ImageLockMode::ReadWrite, System::Drawing::Imaging::PixelFormat::Format16bppGrayScale,data );
  53. myDemoMap->UnlockBits(data);
  54.  
  55. //更改檔名
  56. String^ delimStr = gcnew String(".");
  57. array<Char>^ delimiter = delimStr->ToCharArray();
  58. array<String^>^ words = dlg->FileName->Split(delimiter);
  59.  
  60. //存檔
  61. FileStream^ stream = gcnew FileStream(words[0] + "(2)." + words[1], FileMode::Create);
  62. myDemoMap->Save(words[0] + "(2)." + words[1]);
  63. }
  64. }
  65.  
  66.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:1:1: error: stray ‘\343’ in program
 。using namespace System;
 ^
prog.cpp:1:2: error: stray ‘\200’ in program
 。using namespace System;
  ^
prog.cpp:1:3: error: stray ‘\202’ in program
 。using namespace System;
   ^
prog.cpp:1:20: error: ‘System’ is not a namespace-name
 。using namespace System;
                    ^~~~~~
prog.cpp:1:26: error: expected namespace-name before ‘;’ token
 。using namespace System;
                          ^
prog.cpp:2:17: error: ‘System’ has not been declared
 using namespace System::IO;
                 ^~~~~~
prog.cpp:2:25: error: ‘IO’ is not a namespace-name
 using namespace System::IO;
                         ^~
prog.cpp:2:27: error: expected namespace-name before ‘;’ token
 using namespace System::IO;
                           ^
prog.cpp:3:17: error: ‘System’ has not been declared
 using namespace System::Windows::Media::Imaging;
                 ^~~~~~
prog.cpp:3:41: error: ‘Imaging’ is not a namespace-name
 using namespace System::Windows::Media::Imaging;
                                         ^~~~~~~
prog.cpp:3:48: error: expected namespace-name before ‘;’ token
 using namespace System::Windows::Media::Imaging;
                                                ^
prog.cpp:4:17: error: ‘System’ has not been declared
 using namespace System::Windows::Media;
                 ^~~~~~
prog.cpp:4:34: error: ‘Media’ is not a namespace-name
 using namespace System::Windows::Media;
                                  ^~~~~
prog.cpp:4:39: error: expected namespace-name before ‘;’ token
 using namespace System::Windows::Media;
                                       ^
prog.cpp:5:17: error: ‘System’ has not been declared
 using namespace System::Windows::Forms;
                 ^~~~~~
prog.cpp:5:34: error: ‘Forms’ is not a namespace-name
 using namespace System::Windows::Forms;
                                  ^~~~~
prog.cpp:5:39: error: expected namespace-name before ‘;’ token
 using namespace System::Windows::Forms;
                                       ^
prog.cpp:6:17: error: ‘System’ has not been declared
 using namespace System::Collections;
                 ^~~~~~
prog.cpp:6:25: error: ‘Collections’ is not a namespace-name
 using namespace System::Collections;
                         ^~~~~~~~~~~
prog.cpp:6:36: error: expected namespace-name before ‘;’ token
 using namespace System::Collections;
                                    ^
prog.cpp:7:17: error: ‘System’ has not been declared
 using namespace System::Collections::Generic;
                 ^~~~~~
prog.cpp:7:38: error: ‘Generic’ is not a namespace-name
 using namespace System::Collections::Generic;
                                      ^~~~~~~
prog.cpp:7:45: error: expected namespace-name before ‘;’ token
 using namespace System::Collections::Generic;
                                             ^
prog.cpp:8:17: error: ‘System’ has not been declared
 using namespace System::Drawing;
                 ^~~~~~
prog.cpp:8:25: error: ‘Drawing’ is not a namespace-name
 using namespace System::Drawing;
                         ^~~~~~~
prog.cpp:8:32: error: expected namespace-name before ‘;’ token
 using namespace System::Drawing;
                                ^
prog.cpp:9:17: error: ‘System’ has not been declared
 using namespace System::Drawing::Imaging;
                 ^~~~~~
prog.cpp:9:34: error: ‘Imaging’ is not a namespace-name
 using namespace System::Drawing::Imaging;
                                  ^~~~~~~
prog.cpp:9:41: error: expected namespace-name before ‘;’ token
 using namespace System::Drawing::Imaging;
                                         ^
prog.cpp:10:1: error: expected unqualified-id before ‘[’ token
 [STAThreadAttribute]
 ^
stdout
Standard output is empty