没有简单直接的办法。
比较曲折的办法有两个,一个是通过DC绘制获取:
Image pImage = Image::FromFile(L"c:\\testgif");Status status = pImage->GetLastStatus();
if(Ok == status)
{
CDC dc;
dcCreateCompatibleDC(NULL);
CBitmap bitmap;
bitmapCreateCompatibleBitmap(&dc, pImage->GetWidth(), pImage->GetHeight());
CBitmap pbmpOld = dcSelectObject(&bitmap);
Graphics graphics(dcm_hDC);
status = graphicsGetLastStatus();
if(Ok == status)
{
graphicsDrawImage(pImage, 0, 0);
// enjoy of bitmap;
}
dcSelectObject(pbmpOld);
}
一个是用同样是GDI+的Bitmap重新读取文件或读取Image保存的文件:
Bitmap pBitmap = Bitmap::FromFile(L"c:\\testgif");Status status = pBitmap->GetLastStatus();
if(Ok == status)
{
HBITMAP hBitmap = NULL;
status = pBitmap->GetHBITMAP(Color(0,0,0), &hBitmap);
if(Ok == status)
{
// enjoy of bitmap;
}
}
//这是一个上传的例子,上传其他文件都一样
string strFileFullName = SystemIOPathGetFileName(thisFileUpload1PostedFileFileName);
if (strFileFullNameLength > 0)
{
if (FileUpload1HasFile)
{
string newFileName = GetNewFileName(strFileFullName);
string path = ServerMapPath("[服务器端存储的路径]" + newFileName);
string pathSaveImg = ServerMapPath("[服务器端存储的路径]" + newFileName);
thisFileUpload1SaveAs(path);
[数据库字段]= "[服务器端存储的路径]" + newFileName;
}
else
{
MessageBoxShow(this, "找不到此"); return;
}
}
//跟据文件名产生一个由时间+随机数组成的一个新的文件名
//因为客户端上传的文件很可能会重名,所以要对文件名进行重命名
public static string GetNewFileName(string FileName)
{
Random rand = new Random();
string newfilename = DateTimeNowYearToString() + DateTimeNowMonthToString() + "m" +
DateTimeNowDayToString() + "d"
+ DateTimeNowSecondToString() + DateTimeNowMinuteToString()
+ DateTimeNowMillisecondToString()
+ "a" + randNext(1000)ToString()
+ FileNameSubstring(FileNameLastIndexOf(""), FileNameLength - FileNameLastIndexOf(""));
return newfilename;
}
祝你成功!!!
在 C# 中,可以使用 ImageRawFormat 属性来获取 Bitmap 的格式。
ImageRawFormat 属性返回一个 ImageFormat 对象,表示图像的文件格式。
使用方法如下:
Bitmap bmp = new Bitmap("imagejpg");
ImageFormat format = bmpRawFormat;
if (format == ImageFormatJpeg)
ConsoleWriteLine("The image is in JPEG format");
else if (format == ImageFormatPng)
ConsoleWriteLine("The image is in PNG format");
else if (format == ImageFormatBmp)
ConsoleWriteLine("The image is in BMP format");
可以看到上面这个代码使用了三个 ImageFormat 枚举值分别来判断图像是否是 jpeg,png,bmp 格式。
可以使用 ImageFormatEquals() 判断是否是某种格式
if(ImageFormatJpegEquals(format))
ConsoleWriteLine("The image is in JPEG format");
这样就可以获取一个的类型,进而进行其他的 *** 作。
以上就是关于VC++关于如何用GDI+取得图片的Hbitmap全部的内容,包括:VC++关于如何用GDI+取得图片的Hbitmap、android图像绘制——画布保存为图片、C#程序保存图片到服务器地址怎么写 我是这样的bitmap.save("http:\\192.168.0.105\F:\宝康\my sql连接测等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)