社区
C++ Builder
帖子详情
如何在CB中对JPG文件进行操作?
ktcserver
2004-10-25 04:03:13
我想进行如下操作,无论调用的JPG是多少像素的,都转换成为120*100像素,然后旋转90度,并且在打印的时候为3.5cm*4.2cm,代码将如何写啊,在TImages控件中或TDBImages控件中如何实现呢?
...全文
155
3
打赏
收藏
如何在CB中对JPG文件进行操作?
我想进行如下操作,无论调用的JPG是多少像素的,都转换成为120*100像素,然后旋转90度,并且在打印的时候为3.5cm*4.2cm,代码将如何写啊,在TImages控件中或TDBImages控件中如何实现呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ktcserver
2004-10-26
打赏
举报
回复
旋转90°的方法:
bool TForm1::Right90(Graphics::TBitmap * SrcBitmap)
{
TRect rt;
rt.Left = 0;
rt.Top = 0;
rt.Right = SrcBitmap->Height;
rt.Bottom = SrcBitmap->Width;
SrcBitmap-> PixelFormat = pf24bit;
Graphics::TBitmap* DstBitmap = new Graphics::TBitmap;
DstBitmap->Width=SrcBitmap->Height;
DstBitmap->Height=SrcBitmap->Width;
DstBitmap->PixelFormat = pf24bit;
BITMAP Bmp0, Bmp1; int nPitch0, nPitch1;
GetObject(SrcBitmap->Handle, sizeof(BITMAP), &Bmp0);
GetObject(DstBitmap->Handle, sizeof(BITMAP), &Bmp1);
nPitch0 = ((Bmp0.bmWidth*Bmp0.bmBitsPixel+31)/32)*4;
nPitch1 = ((Bmp1.bmWidth*Bmp0.bmBitsPixel+31)/32)*4;
//假设是顺时针旋转90度
for(int h=0; h<Bmp0.bmHeight; h++)
{
BYTE* Bits0 = (BYTE*)Bmp0.bmBits + nPitch0 * h;
for(int w=0; w<Bmp0.bmWidth; w++)
{
int w1 = h, h1 = Bmp0.bmWidth-1-w;
memcpy((BYTE*)Bmp1.bmBits+(w1*3+nPitch1 *h1), Bits0, 3);
Bits0 += 3;
}
}
SrcBitmap -> Height = DstBitmap->Height;
SrcBitmap -> Width = DstBitmap->Width;
SrcBitmap -> Canvas -> StretchDraw(rt,DstBitmap);
delete DstBitmap;
return true;
}
wt_sanlian
2004-10-26
打赏
举报
回复
我这有一段将TBitmap的尺寸重新设定的代码,可以供汝参考
bool ResizeBitmap(Graphics::TBitmap * SrcBitmap,int BWidth,int BHeight)
{
Graphics :: TBitmap * DstBitmap;
DstBitmap = new Graphics::TBitmap;
DstBitmap -> Width = BWidth;
DstBitmap -> Height = BHeight;
TRect rt;
rt.Left = 0;
rt.Top = 0;
rt.Right = BWidth;
rt.Bottom = BHeight;
DstBitmap -> Canvas -> StretchDraw(rt,SrcBitmap);
SrcBitmap -> Height = BHeight;
SrcBitmap -> Width = BWidth;
SrcBitmap -> Canvas -> StretchDraw(rt,DstBitmap);
delete DstBitmap;
return true;
}
ktcserver
2004-10-26
打赏
举报
回复
自己顶~~~~~~
Venera漫画应用本地
文件
导入完整指南
本文详述Venera漫画应用本地
文件
导入全流程,涵盖
文件
结构要求(单/多章节目录)、图片格式兼容性(
JPG
/PNG/WEBP)、命名与分辨率规范、三步导入
操作
(组织→验证→导入),以及
CB
Z/
CB
7等压缩包支持;同时提供导入失败排查、排序异常处理及批量管理等实用技巧。
JPG
文件
格式全解析:从
文件
头到
文件
尾的二进制分析
本文对
JPG
文件
格式
进行
了全面的二进制分析。介绍了
JPG
文件
结构,包括必选段和可选段。详细解析了核心段如
文件
头、
文件
尾、关键数据块,以及段内数据如DQT、SOF0、DHT、SOS等。还阐述了压缩数据流特点,并给出C语言解析
JPG
文件
头的示例。
JPG
图片格式及隐写方法
本文介绍了
JPG
文件
的相关知识,包括其使用有损压缩算法、
文件
组成、压缩步骤、段结构等。还阐述了
JPG
文件
各段的特点,如SOI
文件
头、APP0格式等。此外,讲解了
JPG
图像常见的隐写方法,如修改DQT隐写、jphide等算法,最后推荐了检测隐写的工具。
JPG
:
文件
格式系列科普之.JPEG/.
JPG
(转)
本文介绍了
JPG
图片格式在互联网广受欢迎的原因,解释了JPEG与
JPG
的关系。详细阐述了JPEG图片压缩的基本原理,包括色彩空间转换、缩减取样、离散余弦变换、量化和熵编码等步骤,还提到了图片质量参数对图像的影响,并给出了代码示例。
【图像】
jpg
与jpeg的区别
本文详细介绍了JPEG图片格式及其压缩原理。JPEG是由联合图像专家小组制定的图像压缩标准,常用的
文件
扩展名为
JPG
。在压缩过程
中
,JPEG通过色彩空间转换(如RGB转Y
Cb
Cr)、缩减取样、离散余弦变换、量化和熵编码等步骤实现有损压缩,牺牲部分细节以减小
文件
体积。图像质量与压缩比例有关,参数越高,质量越好,体积越大。
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章