PDA

View Full Version : حذف کردن قسمت های اضافی عکس



senator_aka
سه شنبه 22 خرداد 1386, 23:32 عصر
سلام دوستان.

من چند تا عکس دارم در فرمم که باید چند قسمت آن حذف بشه.

مثلا قسمت سفید رنگ آن باید حذف شه.

چطور می تونم تو وی بی این کار را انجام بدم.

noorsoft
چهارشنبه 23 خرداد 1386, 16:07 عصر
منظور شما اینکه ترانس پرنت بشه و زیر آن دیده بشه
اگه منظورت اینه من کد لازم را برات بنویسم

senator_aka
شنبه 26 خرداد 1386, 16:07 عصر
بله دوست عزیز .

منظور من همین کار بود یا بهتر بگم اگه بتوانم این کار را هم بکنم باز بهتر از هیچیه !! .

اما یه سوال دیگه هم دارم ؟

آیا می شه واقعا این قسمت ها را حذف کرد یا نه ؟
اگر بشه واقعا حذف کرد خیلی بهتر چون اونوقت در ارتفاع و عرض نیز تاثیر گذاشتیم و مقدار آنها نیز کم و زیاد می شوند .


دوست عزیز ممنون از لطفی که کردی .

noorsoft
شنبه 26 خرداد 1386, 20:15 عصر
من میتونم حالتی را برات درست کنم که مثل حالت لایه های فوتوشاپ کار میکنه فقط چند روز باید به من فرصت بدی چون کامپیوترم را دارم ارتقاء میدم و الان هیچ کامپیوتری ندارم که بشه باش برنامه بنویسم ولی این کار که شما خواستید را قبلا انجام دادم

senator_aka
یک شنبه 27 خرداد 1386, 17:35 عصر
دوست عزیز بسیار ممنون از لطفتان.
من بی صبرانه منتظر کد های شما هستم.

در رابطه با حذف هم می خواهم بدونم کسی نظر خاصی نداره ؟؟؟

اصلا این کار امکان پذیر هست؟؟

ممنون

reza.palang
یک شنبه 27 خرداد 1386, 18:00 عصر
تصویر رو میخوای توی برنامه خودت edit کنی یا اینکه edit شده اون رو میخوای توی فرم استفاده کنی؟
اگه حالت دوم رو لازم داری دو راه داره:
1- چون توی #C استفاده میکنم نمیگم. شاید کاربرد نداشته باشه
2- میتونی از فرمت های gif یا pngاستفاده کنی. که png کیفیت خیلی خیلی بهتری داره. و حتی سایه ها رو با شفافیتشون نگه میداره

noorsoft
یک شنبه 27 خرداد 1386, 20:02 عصر
این کار شدنیه قول میدم همین امروز فردا برات بنویسم

Evil 69
سه شنبه 29 خرداد 1386, 08:51 صبح
اگر بخای فقط رنگ هایی رو که کاربر می گه رو از تصویر پاک کنی می تونم با یکی دوتا تابع ساده کمکت کنم

senator_aka
چهارشنبه 30 خرداد 1386, 10:54 صبح
من اولش هم گفتم که فرقی نمیکنه

من بیشتر خودم می خوام بعضی از قسمت ها را حذف کنم اما حالا یا من یا کاربر ایم مهم نیست

اگه کدی دارید که فکر می کنید می تونه کمک کنه در اینجا بگذارید

ممنون

noorsoft
شنبه 02 تیر 1386, 07:13 صبح
الوعده وفا این هم سورس که گفتم

noorsoft
یک شنبه 03 تیر 1386, 08:24 صبح
این هم یه کد دیگه با یه روش دیگه





Private Sub MakeMask(ByVal from_picture As PictureBox ByVal mask_picture As PictureBox, ByVal from_color As _
OLE_COLOR, ByVal to_color As OLE_COLOR, ByVal _
other_color As OLE_COLOR)


Dim bitmap_info As BITMAPINFO
Dim pixels() As Byte
Dim bytes_per_scanLine As Integer
Dim pad_per_scanLine As Integer
Dim X As Integer
Dim Y As Integer
Dim r As Byte
Dim g As Byte
Dim b As Byte
Dim to_r As Byte
Dim to_g As Byte
Dim to_b As Byte
Dim other_r As Byte
Dim other_g As Byte
Dim other_b As Byte

' Make RGBTriplet values for the colors.
UnRGB to_color, to_r, to_g, to_b
UnRGB other_color, other_r, other_g, other_b
UnRGB from_color, r, g, b

' Prepare the bitmap description.
from_picture.ScaleMode = vbPixels
With bitmap_info.bmiHeader
.biSize = 40
.biWidth = from_picture.ScaleWidth
' Use negative height to scan top-down.
.biHeight = -from_picture.ScaleHeight
.biPlanes = 1
.biBitCount = 32
.biCompression = BI_RGB
bytes_per_scanLine = ((((.biWidth * .biBitCount) + _
31) \ 32) * 4)
pad_per_scanLine = bytes_per_scanLine - (((.biWidth _
* .biBitCount) + 7) \ 8)
.biSizeImage = bytes_per_scanLine * Abs(.biHeight)
End With

' Load the bitmap's data.
ReDim pixels(1 To 4, 1 To from_picture.ScaleWidth, 1 To _
from_picture.ScaleHeight)
GetDIBits from_picture.hdc, from_picture.Image, _
0, from_picture.ScaleHeight, pixels(1, 1, 1), _
bitmap_info, DIB_RGB_COLORS

' Modify the pixels.
For Y = 1 To from_picture.ScaleHeight
For X = 1 To from_picture.ScaleWidth
' See if we need to change this pixel.
If (pixels(pixR, X, Y) = r) And _
(pixels(pixG, X, Y) = g) And _
(pixels(pixB, X, Y) = b) _
Then
pixels(pixR, X, Y) = to_r
pixels(pixG, X, Y) = to_g
pixels(pixB, X, Y) = to_b
Else
pixels(pixR, X, Y) = other_r
pixels(pixG, X, Y) = other_g
pixels(pixB, X, Y) = other_b
End If
Next X
Next Y

' Display the result.
SetDIBits picMask.hdc, picMask.Image, _
0, from_picture.ScaleHeight, pixels(1, 1, 1), _
bitmap_info, DIB_RGB_COLORS
picMask.Picture = picMask.Image
picMask.Visible = True
End Sub