đọc điểm ảnh
Moderators: tungblt, vuathongtin
-
- Thành viên chính thức
- Posts: 49
- Joined: Wed 08/12/2010 10:31 pm
- Has thanked: 3 times
- Been thanked: 1 time
đọc điểm ảnh
mọi người giúp em cái này với em muốn đọc cái ảnh này kích thước 75x75 làm cho nó xoay tròn, em lập trình vb.net
- gtdcomputer
- Thành viên danh dự
- Posts: 1296
- Joined: Fri 18/07/2008 12:08 pm
- Location: Kiên Giang
- Has thanked: 8 times
- Been thanked: 116 times
- Contact:
Re: đọc điểm ảnh
Mình có 2 cách cho bạn chọn ;v
1. Cách đánh lừa người dùng:
Tạo một cái Panel (nằm trong bộ Container) với độ lớn 75, 75. Tạo cái picturebox bỏ vào cái panel đó. Load ảnh vào, và để chế độ ảnh là autosize.
Sao đó, ta cứ dùng Timer tíck rồi move cái picturebox đó, phần nằm ngoài panel sẽ bị ẩn đi, người dùng sẽ thấy giống như là ảnh đang chuyển động vậy
2. Cách vẽ lại ảnh vào picturebox khác
VB.NET cung cấp cho người dùng khá nhiều công cụ hữu ích, công cụng Drawing là cái mình hơi bị thích.
Cách này, mình dùng thư viện Drawing để vẽ một vùng ảnh 75,75 vào picturebox mới. Như vậy, bạn sẽ thấy như ảnh động
Code tham khảo:
1. Cách đánh lừa người dùng:

Tạo một cái Panel (nằm trong bộ Container) với độ lớn 75, 75. Tạo cái picturebox bỏ vào cái panel đó. Load ảnh vào, và để chế độ ảnh là autosize.
Sao đó, ta cứ dùng Timer tíck rồi move cái picturebox đó, phần nằm ngoài panel sẽ bị ẩn đi, người dùng sẽ thấy giống như là ảnh đang chuyển động vậy
2. Cách vẽ lại ảnh vào picturebox khác
VB.NET cung cấp cho người dùng khá nhiều công cụ hữu ích, công cụng Drawing là cái mình hơi bị thích.
Cách này, mình dùng thư viện Drawing để vẽ một vùng ảnh 75,75 vào picturebox mới. Như vậy, bạn sẽ thấy như ảnh động

Code tham khảo:
- Dim tx As Integer, ty As Integer
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- 'Move picturebox trong panel
- Dim i As Integer = PictureBox1.Left - 75
- Dim j As Integer = PictureBox1.Top
- If i <= -PictureBox1.Width Then
- i = 0
- j = j - 75
- If j <= -PictureBox1.Height Then j = 0
- End If
- PictureBox1.Left = i
- PictureBox1.Top = j
- 'Drawing lai picture vao picturebox2
- tx = tx + 75
- If tx >= PictureBox1.Image.Width Then
- tx = 0
- ty = ty + 75
- If ty >= PictureBox1.Image.Height Then ty = 0
- End If
- PictureBox2.Image = DrawImage(tx, ty)
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- tx = 0 ty = 0
- End Sub
- Public Function DrawImage(ByVal tx As Integer, ByVal ty As Integer) As Bitmap
- 'Tạo bitmap mới, có độ lớn như điểm ảnh bạn muốn
- Dim k As New Bitmap(75, 75)
- 'Tạo đối tượng đồ họa cho bitmap
- Dim g As Drawing.Graphics = Drawing.Graphics.FromImage(k)
- 'Tạo khối cần lấy từ ảnh gốc
- Dim sr As New Rectangle(tx, ty, 75, 75)
- 'Tạo khối cần đưa vào ảnh đích
- Dim ds As New Rectangle(0, 0, 75, 75)
- 'Vẽ ảnh gốc vào ảnh đích, theo khối đã tạo
- g.DrawImage(PictureBox1.Image, ds, sr, GraphicsUnit.Pixel)
- 'Giải phóng đối tượng đồ họa
- g.Dispose()
- 'Cái này ko biết
- Return k
- End Function
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật
-
- Thành viên danh dự
- Posts: 262
- Joined: Mon 12/03/2007 10:55 pm
- Location: Hà Giang
- Has thanked: 2 times
- Been thanked: 1 time
- Contact:
Re: đọc điểm ảnh
Hoặc cắt cái ảnh gốc ra thành các ảnh nhỏ rồi lưu vào thư mục hoặc listimage sau đó load lần lượt.
-
- Thành viên chính thức
- Posts: 49
- Joined: Wed 08/12/2010 10:31 pm
- Has thanked: 3 times
- Been thanked: 1 time
Re: đọc điểm ảnh
anh cho em xin cai code nhe, thansk anhngaydautiendihoc wrote:Hoặc cắt cái ảnh gốc ra thành các ảnh nhỏ rồi lưu vào thư mục hoặc listimage sau đó load lần lượt.
- gtdcomputer
- Thành viên danh dự
- Posts: 1296
- Joined: Fri 18/07/2008 12:08 pm
- Location: Kiên Giang
- Has thanked: 8 times
- Been thanked: 116 times
- Contact:
Re: đọc điểm ảnh
Cách của mình là đơn giản rồy, thực ra việc cắt ảnh ra để lưu thành nhiều file, rồi load vào sẽ đơn giản code hơn. Nhưng lại hơi phức tạp. Vì việc cắt thủ công có thể không đồng đều, làm ảnh ko đẹp. Hình như photoshop có chức năng tự chia ảnh ra thì phải, mình ko rành photoshop lắm
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật
-
- Thành viên danh dự
- Posts: 262
- Joined: Mon 12/03/2007 10:55 pm
- Location: Hà Giang
- Has thanked: 2 times
- Been thanked: 1 time
- Contact:
Re: đọc điểm ảnh
Ui, lâu rồi mình không code, chỉ nhớ là có cách đó thôi. Nhưng làm theo cách của @gtdcomputer cho đơn giản. Lưu ý các ảnh thành phần phải được sắp xếp với khoảng cách cố định, khi dịch chuyển sẽ không bị biến dạng.hoanghuyle wrote: anh cho em xin cai code nhe, thansk anh