BCB下的图片旋转放大会有黑边

1000抢什么 2017-08-03 06:05:25
如题,图片正常查看时长比宽值小,当图片旋转后,为水平方向放置(长比宽大)时会有黑边,但放大比例不影响,而垂直放置就可以填满窗口,求教这种情况,解决思路是什么,我跟这代码debug了一遍,还是找不到可以下手的地方。
...全文
485 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2017-08-16
  • 打赏
  • 举报
回复
引用 24 楼 baidu_36930024 的回复:
[quote=引用 23 楼 u010165006 的回复:] [quote=引用 22 楼 baidu_36930024 的回复:] [quote=引用 21 楼 u010165006 的回复:] 你这帖已经结了,别人看不到或者不会看了,你可以重发一帖,看看有没有帮你的。
恩恩,好的谢谢,现在又是另一个问题了,就是stretchBlt的长宽设置,因为有黑边,所以我选择扩大画布大小,成正方形,结果效果可以实现,就是移动图片往上下方向,图片的宽度会自己变短了,高度就跟着上下移动正常,这个问题看下你了不了解,我去另外开一个贴[/quote] 感觉你原来黑边的问题并没有真正解决,你把旋转后的图像加点代码保存为图片文件看看,看图片有没有黑边?[/quote] 是的,显示旋转后是全屏,但打印出来看还是有黑边问题[/quote] 可能是你的旋转函数有问题,参考: C++ Builder利用TBitmap的Canvas->Pixels[x][y]将图片旋转90度示例程序 http://blog.163.com/tab_98/blog/static/11924097201711395726948/
1000抢什么 2017-08-16
  • 打赏
  • 举报
回复
引用 23 楼 u010165006 的回复:
[quote=引用 22 楼 baidu_36930024 的回复:] [quote=引用 21 楼 u010165006 的回复:] 你这帖已经结了,别人看不到或者不会看了,你可以重发一帖,看看有没有帮你的。
恩恩,好的谢谢,现在又是另一个问题了,就是stretchBlt的长宽设置,因为有黑边,所以我选择扩大画布大小,成正方形,结果效果可以实现,就是移动图片往上下方向,图片的宽度会自己变短了,高度就跟着上下移动正常,这个问题看下你了不了解,我去另外开一个贴[/quote] 感觉你原来黑边的问题并没有真正解决,你把旋转后的图像加点代码保存为图片文件看看,看图片有没有黑边?[/quote] 是的,显示旋转后是全屏,但打印出来看还是有黑边问题
ooolinux 2017-08-15
  • 打赏
  • 举报
回复
引用 22 楼 baidu_36930024 的回复:
[quote=引用 21 楼 u010165006 的回复:] 你这帖已经结了,别人看不到或者不会看了,你可以重发一帖,看看有没有帮你的。
恩恩,好的谢谢,现在又是另一个问题了,就是stretchBlt的长宽设置,因为有黑边,所以我选择扩大画布大小,成正方形,结果效果可以实现,就是移动图片往上下方向,图片的宽度会自己变短了,高度就跟着上下移动正常,这个问题看下你了不了解,我去另外开一个贴[/quote] 感觉你原来黑边的问题并没有真正解决,你把旋转后的图像加点代码保存为图片文件看看,看图片有没有黑边?
1000抢什么 2017-08-15
  • 打赏
  • 举报
回复
引用 21 楼 u010165006 的回复:
你这帖已经结了,别人看不到或者不会看了,你可以重发一帖,看看有没有帮你的。
恩恩,好的谢谢,现在又是另一个问题了,就是stretchBlt的长宽设置,因为有黑边,所以我选择扩大画布大小,成正方形,结果效果可以实现,就是移动图片往上下方向,图片的宽度会自己变短了,高度就跟着上下移动正常,这个问题看下你了不了解,我去另外开一个贴
ooolinux 2017-08-14
  • 打赏
  • 举报
回复
你这帖已经结了,别人看不到或者不会看了,你可以重发一帖,看看有没有帮你的。
ooolinux 2017-08-14
  • 打赏
  • 举报
回复
引用 19 楼 baidu_36930024 的回复:
[quote=引用 18 楼 u010165006 的回复:] [quote=引用 16 楼 baidu_36930024 的回复:] 通过iplGetRotateShift旋转的
貌似第三方的库函数,我就不了解了。[/quote] 我已经能铺满屏了,就是还有些地方做的不够好[/quote] 你的问题描述的不清楚,不了解具体情况。
1000抢什么 2017-08-14
  • 打赏
  • 举报
回复
引用 18 楼 u010165006 的回复:
[quote=引用 16 楼 baidu_36930024 的回复:] 通过iplGetRotateShift旋转的
貌似第三方的库函数,我就不了解了。[/quote] 我已经能铺满屏了,就是还有些地方做的不够好
ooolinux 2017-08-10
  • 打赏
  • 举报
回复
引用 14 楼 baidu_36930024 的回复:
[quote=引用 5 楼 u010165006 的回复:] [quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 现在看到的问题已经发现了,是显示空间本来为1000*800,旋转后,显示空间也跟着旋转了,就是800*1000,但我还是不清楚怎么改,你还在看吗?[/quote] 什么显示空间?你怎么旋转的?
1000抢什么 2017-08-10
  • 打赏
  • 举报
回复
引用 5 楼 u010165006 的回复:
[quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 现在看到的问题已经发现了,是显示空间本来为1000*800,旋转后,显示空间也跟着旋转了,就是800*1000,但我还是不清楚怎么改,你还在看吗?
ooolinux 2017-08-10
  • 打赏
  • 举报
回复
引用 16 楼 baidu_36930024 的回复:
通过iplGetRotateShift旋转的
貌似第三方的库函数,我就不了解了。
1000抢什么 2017-08-10
  • 打赏
  • 举报
回复
显示空间就是看到图片的显示内容的空间大小
1000抢什么 2017-08-10
  • 打赏
  • 举报
回复
通过iplGetRotateShift旋转的
ooolinux 2017-08-08
  • 打赏
  • 举报
回复
引用 9 楼 baidu_36930024 的回复:
[quote=引用 8 楼 u010165006 的回复:] [quote=引用 6 楼 baidu_36930024 的回复:] [quote=引用 5 楼 u010165006 的回复:] [quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。 奇怪,我天天刷这贴,结果今天才显示有人回复....[/quote] 不明白你说的黑边是什么,截个图看看?[/quote] 截图不方便,就大概是这样,旋转后,图片是那个图片,但灰色就是它会自动加的屏蔽黑边 [/quote] 图片旋转是自己写的函数吗,是不是图片长和宽搞错了,旋转90度以后,长变成宽,宽变成长。
1000抢什么 2017-08-08
  • 打赏
  • 举报
回复
引用 9 楼 baidu_36930024 的回复:
[quote=引用 8 楼 u010165006 的回复:] [quote=引用 6 楼 baidu_36930024 的回复:] [quote=引用 5 楼 u010165006 的回复:] [quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。 奇怪,我天天刷这贴,结果今天才显示有人回复....[/quote] 不明白你说的黑边是什么,截个图看看?[/quote] 截图不方便,就大概是这样,旋转后,图片是那个图片,但灰色就是它会自动加的屏蔽黑边 [/quote]
引用 9 楼 baidu_36930024 的回复:
[quote=引用 8 楼 u010165006 的回复:] [quote=引用 6 楼 baidu_36930024 的回复:] [quote=引用 5 楼 u010165006 的回复:] [quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。 奇怪,我天天刷这贴,结果今天才显示有人回复....[/quote] 不明白你说的黑边是什么,截个图看看?[/quote] 截图不方便,就大概是这样,旋转后,图片是那个图片,但灰色就是它会自动加的屏蔽黑边 [/quote] 红色表示图片,黑色表示屏幕显示范围
1000抢什么 2017-08-08
  • 打赏
  • 举报
回复
引用 8 楼 u010165006 的回复:
[quote=引用 6 楼 baidu_36930024 的回复:]
[quote=引用 5 楼 u010165006 的回复:]
[quote=引用 4 楼 baidu_36930024 的回复:]
就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二


你用Image显示图像吗?是不是没有缩放?[/quote]

不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。
奇怪,我天天刷这贴,结果今天才显示有人回复....[/quote]

不明白你说的黑边是什么,截个图看看?[/quote]

截图不方便,就大概是这样,旋转后,图片是那个图片,但灰色就是它会自动加的屏蔽黑边
ooolinux 2017-08-08
  • 打赏
  • 举报
回复
引用 6 楼 baidu_36930024 的回复:
[quote=引用 5 楼 u010165006 的回复:] [quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。 奇怪,我天天刷这贴,结果今天才显示有人回复....[/quote] 不明白你说的黑边是什么,截个图看看?
ooolinux 2017-08-08
  • 打赏
  • 举报
回复
引用 6 楼 baidu_36930024 的回复:
[quote=引用 5 楼 u010165006 的回复:] [quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。 奇怪,我天天刷这贴,结果今天才显示有人回复....[/quote] 试试TCanvas::StretchDraw void __fastcall StretchDraw(const TRect &Rect, TGraphic* Graphic);
1000抢什么 2017-08-08
  • 打赏
  • 举报
回复
引用 5 楼 u010165006 的回复:
[quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。 奇怪,我天天刷这贴,结果今天才显示有人回复....
1000抢什么 2017-08-08
  • 打赏
  • 举报
回复
忘记说了,ooolinux,谢谢你
1000抢什么 2017-08-08
  • 打赏
  • 举报
回复
引用 11 楼 u010165006 的回复:
[quote=引用 9 楼 baidu_36930024 的回复:] [quote=引用 8 楼 u010165006 的回复:] [quote=引用 6 楼 baidu_36930024 的回复:] [quote=引用 5 楼 u010165006 的回复:] [quote=引用 4 楼 baidu_36930024 的回复:] 就是旋转之后,y轴的画布是会全部显示,但X轴的方向图片只显示了三分之二
你用Image显示图像吗?是不是没有缩放?[/quote] 不太懂用image显示是什么意思,其实是正面放大后是正常的,一旋转,界面显示左右就加了黑边,是Bmp图片格式,然后canvas->draw出来的。 奇怪,我天天刷这贴,结果今天才显示有人回复....[/quote] 不明白你说的黑边是什么,截个图看看?[/quote] 截图不方便,就大概是这样,旋转后,图片是那个图片,但灰色就是它会自动加的屏蔽黑边 [/quote] 图片旋转是自己写的函数吗,是不是图片长和宽搞错了,旋转90度以后,长变成宽,宽变成长。[/quote] 找到可以下手的地方了,图片旋转的问题导致的,具体怎么弄我再看看函数实现,分送给你~
加载更多回复(5)

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧