实在不会做了,盼高人指点,另请教如何往图片中写一些文字比如日期什么的???
愿千分散尽,只求工作如意!

解决方案 »

  1.   

    将文件调入DC中,写什么都可以的,之后把这个DC存起来就可以啦。
      

  2.   

    楼上的大侠,怎么把这个DC存起来,可否给把CODE写出来?
    谢谢拉
      

  3.   

    老大在搞什么啊,-_-
    用GDI+
    VOID Example_GetPixel(HDC hdc){   Graphics graphics(hdc);   // Create a Bitmap object from a JPEG file.
       Bitmap myBitmap1(L"Climber.jpg");
       Bitmap myBitmap2(L"Climber.jpg");
       // Get the value of pixels from myBitmap1,myBitmap2.
       Color pixelColor1;
       for(int i=0;i<myBitmap1.GetWidth();i++)
        for(int j=0;j<myBitmap1.GetHeight();j++)
           myBitmap1.GetPixel(i, j, &pixelColor1);   for(i=0;i<myBitmap2.GetWidth();i++)
        for(int j=0;j<myBitmap2.GetHeight();j++)
           myBitmap1.GetPixel(i, j, &pixelColor2);   //save the pixelColor1,pixelColor2 to new Image
     Bitmap* newImage;
      for(i =0;i<myBitmap1.GetWidth()+myBitmap2.GetWidth();i++)
        for(j=0;j<myBitmap1.GetHeight()+myBitmap2.GetHeight();j++)
        {
           if(i<myBitmap1.GetWidth())
             newImage->SetPixel(i,j,pixelColor1);
           else
             newImage->SetPixel(i,j,pixelColor2);
         } 
       //save image...
     }
      

  4.   

    你会保存位图吧。新建一个BITMAP
    和你的位图一样大小的。
    把位图数据COPY到BITMAP,画好后把其COPY到位图数据区,然后保存位图就可以了。
    想在BITMAP上写什么用MEMDC写好了。
      

  5.   

    该问题作者已用GDI+解决,感谢关注!
    #include <windows.h>
    #include <gdiplus.h>
    #include <stdio.h>
    using namespace Gdiplus;INT GetEncoderClsid(const WCHAR* format, CLSID* pClsid);  // helper functionINT main()
    {
       // Initialize GDI+.
       GdiplusStartupInput gdiplusStartupInput;
       ULONG_PTR gdiplusToken;
       GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);   EncoderParameters encoderParameters;
       ULONG             parameterValue;
       Status            stat;   // An EncoderParameters object has an array of
       // EncoderParameter objects. In this case, there is only
       // one EncoderParameter object in the array.
       encoderParameters.Count = 1;   // Initialize the one EncoderParameter object.
       encoderParameters.Parameter[0].Guid = EncoderSaveFlag;
       encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong;
       encoderParameters.Parameter[0].NumberOfValues = 1;
       encoderParameters.Parameter[0].Value = &parameterValue;   // Get the CLSID of the TIFF encoder.
       CLSID encoderClsid;
       GetEncoderClsid(L"image/tiff", &encoderClsid);   // Create four image objects.
       Image* multi = new Image(L"Shapes.bmp");
       Image* page2 = new Image(L"Cereal.gif");
       Image* page3 = new Image(L"Iron.jpg");
       Image* page4 = new Image(L"House.png");   // Save the first page (frame).
       parameterValue = EncoderValueMultiFrame;
       stat = multi->Save(L"MultiFrame.tif", &encoderClsid, &encoderParameters);
       if(stat == Ok)
          printf("Page 1 saved successfully.\n");   // Save the second page (frame).
       parameterValue = EncoderValueFrameDimensionPage;
       stat = multi->SaveAdd(page2, &encoderParameters);
       if(stat == Ok)
          printf("Page 2 saved successfully.\n");   // Save the third page (frame).
       parameterValue = EncoderValueFrameDimensionPage;
       stat = multi->SaveAdd(page3, &encoderParameters);
       if(stat == Ok)
          printf("Page 3 saved successfully.\n");   // Save the fourth page (frame).
       parameterValue = EncoderValueFrameDimensionPage;
       stat = multi->SaveAdd(page4, &encoderParameters);
       if(stat == Ok)
          printf("Page 4 saved successfully.\n");   // Close the multiframe file.
       parameterValue = EncoderValueFlush;
       stat = multi->SaveAdd(&encoderParameters);
       if(stat == Ok)
          printf("File closed successfully.\n");   delete multi;
       delete page2;
       delete page3;
       delete page4;
       GdiplusShutdown(gdiplusToken);
       return 0;
    }