简单问题:如何 将图片翻转任意角度。 和 如何在缩小图片时 不损失任何图片信息(如一根很细的直线)??

wjq 2001-10-19 10:15:59
最好有源代码
...全文
152 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
szchengyu 2001-10-25
  • 打赏
  • 举报
回复
一、只能用坐标转换的算法
二、不可能"不损失任何信息",只能变通:
SetStretchBltMode(bmp.Canvas.Handle, HALFTONE);
// bmp为目的位图
xxb_xxb 2001-10-25
  • 打赏
  • 举报
回复
看看图形学吧.
hotsonic 2001-10-25
  • 打赏
  • 举报
回复
代码如下:
Option Explicit
Const Pi = 3.14
Private Sub CommandRototate_Click()
Dim x As Integer, y As Integer
Dim X1 As Integer, Y1 As Integer
Dim X2 As Double, Y2 As Double
Dim X3 As Double, Y3 As Double
Dim JiaoDu As Double
Dim HuDu As Double
JiaoDu = 45 '角度可自己设定
HuDu = JiaoDu * Pi / 180 '弧度
PicSource.ScaleMode = vbPixels
PicTarget.ScaleMode = vbPixels
For x = 0 To PicTarget.ScaleWidth
X1 = x - PicTarget.ScaleWidth \ 2
For y = 0 To PicTarget.ScaleHeight
Y1 = y - PicTarget.ScaleHeight \ 2
X2 = X1 * Cos(-HuDu) + Y1 * Sin(-HuDu)
Y2 = Y1 * Cos(-HuDu) - X1 * Sin(-HuDu)
X3 = X2 + PicSource.ScaleWidth \ 2
Y3 = Y2 + PicSource.ScaleHeight \ 2
If X3 > 0 And X3 < PicSource.ScaleWidth - 1 And Y3 > 0 And Y3 <
PicSource.ScaleHeight - 1 Then
PicTarget.PSet (x, y), PicSource.Point(X3, Y3)
End If
Next y
Next x
End Sub
hotsonic 2001-10-25
  • 打赏
  • 举报
回复
在VISUAL BASIC 中 没 有 什 么 命 令 或 函 数 能 够 实 现 将 一 个 位 图 旋 转 一 个 角 度 后 显 示 出 来, 但 可 以 用 画 点 的 方 式, 将 一 个 图 画 盒 中 的 位 图 中 的 像 素 点 旋 转 一 个 角 度 后 画 入 另 一 个 图 画 盒 中, 当 源 图 画 盒 中 的 像 素 都 被 画 到 目 标 图 画 盒 中 时, 也 就 完 成 了 位 图 的 旋 转。
Sean_Jhh 2001-10-25
  • 打赏
  • 举报
回复
图象反转放大,缩小用Stretchbit是API,不失真没法保证的。复杂点。
dan888 2001-10-25
  • 打赏
  • 举报
回复
1.你去参考VC技术内幕的开始的图像部分也许会有答案的!
wjq 2001-10-19
  • 打赏
  • 举报
回复
第一个问题呢?总可能吧?将图片翻转任意角度
pp616 2001-10-19
  • 打赏
  • 举报
回复
位图不可能。
szchengyu 2001-10-19
  • 打赏
  • 举报
回复
用矢量图
szchengyu 2001-10-19
  • 打赏
  • 举报
回复
用矢量图
gujianxin 2001-10-19
  • 打赏
  • 举报
回复
up
JWhiteHorse 2001-10-19
  • 打赏
  • 举报
回复
up
JWhiteHorse 2001-10-19
  • 打赏
  • 举报
回复
up
wjq 2001-10-19
  • 打赏
  • 举报
回复
???

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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