社区
Windows客户端开发
帖子详情
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图
zkhraul
2010-12-28 10:22:58
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图,IIMAGE怎么使用?有例子参考下吗,急,谢谢
...全文
148
5
打赏
收藏
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图,IIMAGE怎么使用?有例子参考下吗,急,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zkhraul
2010-12-29
打赏
举报
回复
我找了个资料,刚好和我人需求一样,不知道WINDOWS MOBILE下支持下面所说的GDI+吗
我用GDI+缩小一个JPG图片,从网上down下来的这个图片原本是208×275,大小为10K,我使用GDI+将尺寸缩小至151×200后,图片的大小反而变成了22K,我的代码如下:
C/C++ code
void compressImpl(const std::string& path, int size, UInt8 quality)
{
HBITMAP hbmReturn = NULL;
Bitmap* bmPhoto = NULL;
std::wstring upath;
UnicodeConverter::toUTF16(path, upath);
{
Bitmap image(upath.c_str());
int srcWidth = image.GetWidth();
int srcHeight = image.GetHeight();
float percent = 0;
int destX = 0, destY = 0;
if (srcWidth > srcHeight)
{
percent = ((float)size/(float)srcWidth);
destX = (int)((size - (srcWidth * percent))/2);
}
else
{
percent = ((float)size/(float)srcHeight);
destY = (int)((size - (srcHeight * percent))/2);
}
if (percent >= 1.0f)
return; // skip compress
int destWidth = (int)(srcWidth * percent);
int destHeight = (int)(srcHeight * percent);
bmPhoto = new Bitmap(destWidth, destHeight, PixelFormat24bppRGB);
bmPhoto->SetResolution(image.GetHorizontalResolution(), image.GetVerticalResolution());
Graphics *grPhoto = Graphics::FromImage(bmPhoto);
Color colorW(255, 255, 255, 255);
grPhoto->Clear(colorW);
grPhoto->SetInterpolationMode(InterpolationModeHighQualityBicubic);
grPhoto->DrawImage(&image, Rect(destX, destY, destWidth, destHeight));
bmPhoto->GetHBITMAP(colorW, &hbmReturn);
delete grPhoto;
}
// find appropriate encoder, jpeg
CLSID encoderClsid;
getEncoderClsid(L"image/jpeg", &encoderClsid);
// set output quality for jpeg alone
EncoderParameters encoderParameters;
setEncoderQuality(&encoderParameters, quality);
// output to image file with desired quality
bmPhoto->Save(upath.c_str(), &encoderClsid, &encoderParameters);
// release resources
delete bmPhoto;
DeleteObject(hbmReturn);
}
int getEncoderClsid(const WCHAR* format, void* clsid)
{
UINT num = 0; // number of image encoders
UINT size = 0; // size of the image encoder array in bytes
ImageCodecInfo* pImageCodecInfo = NULL;
GetImageEncodersSize(&num, &size);
if(size == 0)
return -1; // Failure
pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo == NULL)
return -1; // Failure
GetImageEncoders(num, size, pImageCodecInfo);
for (UINT j = 0; j < num; ++j)
{
if (wcscmp(pImageCodecInfo[j].MimeType, format) == 0)
{
*(CLSID*)clsid = pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j; //Success
}
}
free(pImageCodecInfo);
return -1; // Failure
}
void setEncoderQuality(void* params, UInt8 quality)
{
EncoderParameters* encoderParams = (EncoderParameters*)params;
encoderParams->Count = 1;
encoderParams->Parameter[0].Guid = EncoderQuality;
encoderParams->Parameter[0].Type = EncoderParameterValueTypeLong;
encoderParams->Parameter[0].NumberOfValues = 1;
encoderParams->Parameter[0].Value = &quality;
}
zkhraul
2010-12-29
打赏
举报
回复
我用的是WIN32,GetThumbnail好像不支持吧
biosli
2010-12-29
打赏
举报
回复
CxImage开源工程,参考一下~~
IImage似乎不能编码,只能解码。就是说你能把图片解成Bitmap,改变大小,但是不能再打回JPEG
YourKing
2010-12-29
打赏
举报
回复
调用IImage的GetThumbnail
C#快速获取JPG
图
片大小及英寸
分辨率
C#快速获取JPG
图
片大小及英寸
分辨率
.
MJPGServer:一个运动
jpeg
服务器,同时支持低
分辨率
相机MJPG流和全
分辨率
JPEG
快照
双码流运动
JPEG
服务器 此存储库包含一个HTTP服务器,该服务器同时从您的网络摄像头流式传输低
分辨率
MJPG流,并允许同时(或尽可能近地)捕获来自摄像头的全
分辨率
JPEG
图
片。 这对于监视3D打印机(例如,通过Octoprint)非常有用,而又不占用太多带宽,并且仍然能够捕获高
分辨率
图
片以使正在构建的3D部件经过时间间隔(通过Octolapse)。 该服务器非常轻巧。 它不使用CPU进行
图
像处理或缩放,而是仅依靠本身支持MJPG编码的网络摄像头。 它应该适合于Raspberry Pi板之类的嵌入式和低功耗系统。 与竞争对手相比如何? 据我所知,虽然有许多软件可以从网络摄像头流式传输MJPG流,但它们都不能同时捕获多种
分辨率
的流。 该软件要么将捕获高
分辨率
的流,然后对像低
分辨率
流进行解码,重新缩放和重新编码,要么根本不可能。 最常用的软件是 。 使用此软件,支持双流的唯一方法是拥有
Jpeg
图
片处理软件
Jpeg
图
片处理软件,方便快捷处理
图
片大小,
分辨率
。
一张
色彩空间为CMYK的
JPEG
图
片
一张
色彩空间为CMYK的
JPEG
图
片,无法使用Java读取它的水平
分辨率
和垂直
分辨率
C#改变
图
片
分辨率
C#改变
图
片
分辨率
,并且保存报本地文件中
Windows客户端开发
7,660
社区成员
18,840
社区内容
发帖
与我相关
我的任务
Windows客户端开发
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
复制链接
扫一扫
分享
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章