社区
GAME,图形处理/多媒体
帖子详情
怎样将Image1中的aa.jpg图像旋转90度?
sbxtzhl
2002-12-01 12:13:02
请给源码,谢谢!
...全文
328
11
打赏
收藏
怎样将Image1中的aa.jpg图像旋转90度?
请给源码,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ehom
2002-12-02
打赏
举报
回复
真拿你没办法,这次把示例程序给你!
http://www.ehomsoft.com/pictest.zip
HOOK_TTG
2002-12-02
打赏
举报
回复
一定行的!!!给我加分吧!!!
--- Delphi中的Image构件可以显示位图,进一步,我们还可以用它完成位图旋转。
---- 把一个点绕原点旋转α角度后,新的坐标位置与原坐标位置的关系是:
X=xcosα-ysinα
Y= xsinα+ycosα
例如要把位图顺时针旋转90度,坐标变换公式为:X=-y Y=x
---- 把这一公式用到Image构件上,显示位图的主要问题是Image构件显示的位图只有一个象限, 并且x、y坐标也是互相颠倒的,为了解决这个问题,必须在Image构件上建立一个新的坐标原点。下面就举例说明。
---- 1. 新建一工程project1
在form1上添加image1、 image2、 image3、image4,其 Autosize属性设为True
image1用来显示原图,image2、image3、image4分别用来显示旋转90度、180度和270度后的图像。双击image1,选定一幅bmp图。
---- 2. 添加Button1、Button2、Button3和Button4按钮,其caption属性分别为“原图”、 “旋转90度”、“旋转180度”、“旋转270度”。
---- 3. 编写“旋转90度”按钮的On Click事件。
procedure TForm1. Button2Click (Sender: TObject);
var
i
j:integer;
begin
//确定旋转后位图的大小
image2.Picture.Bitmap.Height:=image1.picture.width;
image2.Picture.Bitmap.Width:=image1.picture.height;
for i:=0 to image1.Height do
for j:=0 to image1.Width do
image2.canvas.Pixels[(-i+ image1.Height)
j]:=image1.canvas.Pixels[j
i];
end;
---- 4. 编写“旋转180度”按钮的On Click事件。
procedure TForm1.Button3Click(Sender: TObject);
var
i
j:integer;
begin
//确定旋转后位图的大小
image3.Picture.Bitmap.Height:=image1.picture.Height;
image3.Picture.Bitmap.Width:=image1.picture.Width;
for i:=0 to image1.Height do
for j:=0 to image1.Width do
image3.canvas.Pixels[(image1.Width
-j)
(image1.Height-i)]:=image1.canvas.Pixels[j
i];
end;
---- 5. 编写“旋转270度” 按钮的On Click事件。代码和步骤3相似,只需要用image4 替换image2,然后用以下的语句替换步骤3 for循环中的原有的语句。
image4.canvas.Pixels[i
(image1.Width-j)]:=image1.canvas.Pixels[j
i];
sbxtzhl
2002-12-02
打赏
举报
回复
各位高手的帮助,在些小弟表示特别感谢,但我还是没有调试出来,请各位再帮助解决为感!!
VisualLion
2002-12-02
打赏
举报
回复
像素级处理
耙子
2002-12-01
打赏
举报
回复
你把它当作矩阵,他的算法就是矩阵的旋转了。
ehom
2002-12-01
打赏
举报
回复
TemBmp.Assign(TemBmp);
改为
TemBmp.Assign(JPG);
ehom
2002-12-01
打赏
举报
回复
VAR
Bitmap:TBitmap;
TemBmp:TBitamp;
JPG:TJPEGImage;
i : INTEGER;
j : INTEGER;
rowIn : pRGBArray;
BEGIN
JPG := TJPEGImage.Create;
JPG.LoadFromFile(FilName);
TemBmp := TBitmap.Create;
TemBmp.Assign(TemBmp);
Bitmap := TBitmap.Create;
Bitmap.Width := TemBmp.Height;
Bitmap.Height := TemBmp.Width;
Bitmap.PixelFormat := TemBmp.PixelFormat;
FOR j := 0 TO TemBmp.Height - 1 DO
BEGIN
rowIn := TemBmp.ScanLine[j];
FOR i := 0 TO TemBmp.Width - 1 DO
pRGBArray(Bitmap.ScanLine[TemBmp.Width - i - 1])[j] := rowIn[i]
END;
END;
lfstudy
2002-12-01
打赏
举报
回复
还是用CopyRect吧,最方便的方法
CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect)
提示:Dest,Source的不同可实现图像的翻转、旋转等操作
ehom
2002-12-01
打赏
举报
回复
TYPE
TRGBArray = ARRAY[0..65534] OF TRGBTriple;
pRGBArray = ^TRGBArray;
这个当然不能少!
TBitmap纯属笔误!
sbxtzhl
2002-12-01
打赏
举报
回复
错误信息如下:请指教
[Error] Unit1.pas(30): Undeclared identifier: 'TBitamp'
[Error] Unit1.pas(34): Undeclared identifier: 'pRGBArray'
lfstudy
2002-12-01
打赏
举报
回复
CopyRect
Java图片查看器 源代码
Java图片查看器源码,实现简单的移动、缩小、放大、旋转功能 package tp1; import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; import javax.swing.filechooser....
Python如何将图像向右旋转
90
度
如果直接套用PIL和OpenCV3图像处理库的旋转函数,旋转后保存的图像会留黑边,下面给出我...# 方法一:将图像向右旋转
90
度
file1 = 'E:/Kaggle Competiton/Humpback Whale Identification/train_fluke/w_0a0c768/
aa
...
Python之图像处理---PIL库
文章目录前言一、PIL库概述二、...(1)图像归档:对图像进行批处理、 生成图像预览、 图像格式转换等 (2)图像处理:图像基本处理、 像素处理、 颜色处理等 二、
Image
类解析 在PIL
中
, 任何一个图像文件都可以用Im..
OpenCV案例教程(数字图像处理Python实现,含目录)
1.读入图像 #导入opencv的python版本依赖库cv2 import cv2 #使用opencv
中
imread函数读取图片, #0代表灰
度
图形式打开,1代表彩色形式打开 img = cv2.imread('split.
jpg
',1) print(img.shape) #print(img) 2.显示...
go语言实现
图像旋转
file, err := os.Open("C:\\Users\\wg\\go\\src\\学习go语言\\预处理\\家人们_
aa
.png") if err != nil { log.Fatal(err) } dst:="laker.png" fOut, _ := os.Create(dst) defer fOut.Close()
GAME,图形处理/多媒体
1,183
社区成员
14,336
社区内容
发帖
与我相关
我的任务
GAME,图形处理/多媒体
Delphi GAME,图形处理/多媒体
复制链接
扫一扫
分享
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章