社区
Windows客户端开发
帖子详情
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图
zkhraul
2010-12-28 10:22:58
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图,IIMAGE怎么使用?有例子参考下吗,急,谢谢
...全文
177
5
打赏
收藏
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图
如何把一张大分辨率的JPEG图存为小分辨率的JPEG图,IIMAGE怎么使用?有例子参考下吗,急,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
MJPGServer:一个运动
jpeg
服务器,同时支持低
分辨率
相机MJPG流和全
分辨率
JPEG
快照
双码流运动
JPEG
服务器此存储库包含一个HTTP服务器,该服务器同时从您的网络摄像头流式传输低
分辨率
MJPG流,并允许同时(或尽可能近地)捕获来自摄像头的全
分辨率
JPEG
图
片。 这对于监视3D打印机(例如,通过Octoprint...
Jpeg
图
片处理软件
1.
图
片大小调整:用户可以通过软件改变
图
片的像素尺寸,例如将
一张
大尺寸的
图
片缩小,以适应网页、社交媒体或者电子邮件的上传限制。这通常涉及到保持原
图
宽高比的等比例缩放和自由调整尺寸两种方式。 2.
分辨率
...
一张
色彩空间为CMYK的
JPEG
图
片
一张
色彩空间为CMYK的
JPEG
图
片,无法使用Java读取它的水平
分辨率
和垂直
分辨率
图
片压缩C#代码(
分辨率
、
图
片质量)
图
片质量则是指
JPEG
格式特有的概念,质量越高,保存的细节越多,但文件大小也越大;反之,质量降低则文件更小,但可能会丢失部分细节。 接下来,我们来分析实现这个功能的关键步骤: 1. **读取
图
片**:使用`Image....
JPEG
Imager
图
片处理
JPEG
Imager是一款高效且功能强大的
图
片处理软件,尤其在批量修改
图
片
分辨率
和进行快速压缩方面表现出色。这款工具以其优秀的性能和出色的
图
片质量得到了广泛的好评,是个人用户和专业摄影师进行
图
片管理的理想选择...
Windows客户端开发
7,655
社区成员
18,839
社区内容
发帖
与我相关
我的任务
Windows客户端开发
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
复制链接
扫一扫
分享
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章