PDA

View Full Version : خذف یک رنگ (مثلا آبی )یک عکس



mazdaxx
شنبه 27 مهر 1387, 06:55 صبح
با سلام چه طور می شود از یک عکس یه رنگ رو خذف کرد (مثلا رنگ آبی رو خذف کرد و عکس با رنگهای قرمز و سبز نمایش داده شود )

Armin060
شنبه 27 مهر 1387, 15:03 عصر
هيچ وقت نميشه رنگ آبی رو حظف كرد. يا كلا هر رنگی رو...مگر اينكه تصوير PNG‌ باشه كه VB6 ساپورت نميكنه.
حالا اگر هم بخوای مثلا سياه يا هر رنگ ديگه ای بكنی بايد دونه به دونه پيكسل ها رو چك كنی و اگر رنگ آبی توش به كار رفته بود، اون پيكسل تغيير رنگ بدی.

hamed aj
شنبه 27 مهر 1387, 19:08 عصر
با سلام

دوست عزیز؛

همونطور که می دونید، گرافیک در کامپیوتر (منظورم کارت گرافیک نیست) از چندین روش برای نمایش عکس در مانیتور استفاده می کند که یکی از این مد ها RGB هست که در این مد بیش از 16 میلیون رنگ وجود دارد و مثلاً برای رنگ آبی چندین هزار رنگ وجود دارد. دوم اینکه حذف رنگ در کامپیوتر بی معنی است و فقط می توان رنگ ها را جایگزین کرد.

لطفاً در مورد کاری که می خواهید انجام بدید بیشتر توضیح بدین

mazdaxx
یک شنبه 28 مهر 1387, 06:42 صبح
با سلام

دوست عزیز؛

همونطور که می دونید، گرافیک در کامپیوتر (منظورم کارت گرافیک نیست) از چندین روش برای نمایش عکس در مانیتور استفاده می کند که یکی از این مد ها RGB هست که در این مد بیش از 16 میلیون رنگ وجود دارد و مثلاً برای رنگ آبی چندین هزار رنگ وجود دارد. دوم اینکه حذف رنگ در کامپیوتر بی معنی است و فقط می توان رنگ ها را جایگزین کرد.

لطفاً در مورد کاری که می خواهید انجام بدید بیشتر توضیح بدین
با سلام :
من می خواهم برنامه ای بنویسم که با هاش بشه تصاویر سه بعدی ساخت برای ساخت تصاویر سه بعدی باید دو تصویرداشت که از یکی از عکس ها باید ازش رنگ سبز خذف کرد و از دیگر عکس باید رنگ قرمز رو خذف کرد و من هم برای همین نیاز به این کد دارم با تشکر

Armin060
یک شنبه 28 مهر 1387, 16:03 عصر
من الان يه كد مينويسم كه بشه باهاش رنگ ها رو تغيير داد.

Armin060
یک شنبه 28 مهر 1387, 16:37 عصر
به فورمتون يك PictureBox و يك ComboBox اضافه كنيد. برای PictureBox يك عكس انتخاب كنيد.
كد زير رو در قسمت كد نويسی فورمتون كپی كنيد و برنامه رو اجرا كنيد. سپس روی عكس كليك كنيد. فقط كمی كند هست. و مطمئن نيستم كه اونی كه شما ميخواهيد هست يا نيست.



Dim lngColor As Long
Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.PaintPicture Picture1.Picture, 0, 0, Picture1.Width, Picture1.Height
Picture1.ScaleMode = 3
End Sub
Private Sub Picture1_Click()
On Error Resume Next
For X = 1 To Picture1.ScaleWidth
For Y = 1 To Picture1.ScaleHeight
lngColor = Picture1.Point(X, Y)
R = ConvertToRGB(lngColor, 0)
G = ConvertToRGB(lngColor, 1)
B = ConvertToRGB(lngColor, 2)
If R < 0 Then R = 0 Else If R > 255 Then R = 255
If G < 0 Then G = 0 Else If G > 255 Then G = 255
If B < 0 Then B = 0 Else If B > 255 Then B = 255
Select Case Combo1.ListIndex
Case 0
Picture1.PSet (X, Y), RGB(B, G, B)
Case 1
Picture1.PSet (X, Y), RGB(G, G, B)
Case 2
Picture1.PSet (X, Y), RGB(R, G, R)
Case 3
Picture1.PSet (X, Y), RGB(R, G, G)
Case 4
Picture1.PSet (X, Y), RGB(R, R, B)
Case 5
Picture1.PSet (X, Y), RGB(R, B, B)
End Select
Next Y
DoEvents
Next X
End Sub
Public Function ConvertToRGB(ByVal Colors As Long, ByVal Index As Integer) As Long
Dim Red As Integer, Green As Integer, Blue As Integer
Dim lngColor As Long
lngColor = Colors
Red = lngColor Mod &H100
Green = (lngColor \ &H100) Mod &H100
Blue = lngColor \ &H10000
If Index = 0 Then ConvertToRGB = Red
If Index = 1 Then ConvertToRGB = Green
If Index = 2 Then ConvertToRGB = Blue
End Function

sinashahab
یک شنبه 28 مهر 1387, 19:35 عصر
سلام
کد تو نصفه است .
تو خط اول باید این اضافه بشه :

Combo1.AddItem 1
Combo1.AddItem 2
Combo1.AddItem 3
Combo1.AddItem 4
Combo1.AddItem 5

Armin060
یک شنبه 28 مهر 1387, 19:52 عصر
تو نه شما
اشتباها ننوشتم. چون خودم تو Combo ايتم ها رو از تغيير خصوصيات اضافه كرده بودم، يادم رفت كه اينجا هم اضافه كنم.