View Full Version : سوال: الحاق تصاویر
SlowCode
سه شنبه 31 خرداد 1390, 22:50 عصر
سلام من برای الحاق دو تصویر از کد زیر استفاده می کنم ولی بعضی از پیکسل ها رو بد نشون می ده، به نظر دوستان از چه کدی استفاده کنم؟
For i = 1 To Picture1.ScaleWidth Step 10
For j = 1 To Picture1.ScaleHeight Step 10
Picture3.PSet (i, j), Picture1.Point(i, j) + Picture2.Point(i, j)
Next
Next
amintiger
چهارشنبه 01 تیر 1390, 17:55 عصر
فکر کنم این بتونه کمکت کنه
اگه منظورت از الحاق تصاویر این باشه :
For X = 1 To sw
For Y = 1 To sh
a = pic(0).Point(X, Y)
r1 = a Mod 256
b1 = Int(a / 256 ^ 2)
g1 = Int((a - b1 * 256 ^ 2) / 256)
k = pic(1).Point(X, Y)
r2 = k Mod 256
b2 = Int(k / 256 ^ 2)
g2 = Int((k - b2 * 256 ^ 2) / 256)
r = Abs((r1 + r2) / 2)
g = Abs((g1 + g2) / 2)
b = Abs((b1 + b2) / 2)
pic(z).PSet (X, Y), RGB(r, g, b)
Next
Next
منظور از sw = width
و منظور از sh = height
جعبه تصویر هست
SlowCode
چهارشنبه 01 تیر 1390, 19:04 عصر
ممنون، روش شما بهتره ولی یه مشکل داره ببینید:
amintiger
چهارشنبه 01 تیر 1390, 20:02 عصر
خواهش می کنم
این اتفاق به این خاطر می افته که اندازه تصویر ها یکی نیست
autosize دو تا جعبه تصویر رو اول فعل کن بعد اینجوری بنویسی فکر کنم درست بشه
For x = 1 To Pic1.ScaleWidth
For y = 1 To Pic1.ScaleHeight
a = Pic1.Point(x, y)
If x >= Pic2.ScaleWidth Or y >= Pic2.ScaleHeight Then
Pic3.PSet (x, y), a
Else
r1 = a Mod 256
b1 = Int(a / 256 ^ 2)
g1 = Int((a - b1 * 256 ^ 2) / 256)
k = Pic2.Point(x, y)
r2 = k Mod 256
b2 = Int(k / 256 ^ 2)
g2 = Int((k - b2 * 256 ^ 2) / 256)
r = Abs((r1 + r2) / 2)
g = Abs((g1 + g2) / 2)
b = Abs((b1 + b2) / 2)
Pic3.PSet (x, y), RGB(r, g, b)
End If
Next
Next
amintiger
چهارشنبه 01 تیر 1390, 22:34 عصر
اینم یه راه دیگه که باعث می شه قسمت های اضافی فایل اول مثل بقیه قسمت هاش کمرنگ بشه
For x = 1 To Pic1.ScaleWidth
For y = 1 To Pic1.ScaleHeight
a = Pic1.Point(x, y)
r1 = a Mod 256
b1 = Int(a / 256 ^ 2)
g1 = Int((a - b1 * 256 ^ 2) / 256)
k = Pic2.Point(x, y)
If x >= Pic2.ScaleWidth Or y >= Pic2.ScaleHeight Then k = vbWhite
r2 = k Mod 256
b2 = Int(k / 256 ^ 2)
g2 = Int((k - b2 * 256 ^ 2) / 256)
r = Abs((r1 + r2) / 2)
g = Abs((g1 + g2) / 2)
b = Abs((b1 + b2) / 2)
Pic3.PSet (x, y), RGB(r, g, b)
Next
Next
موفق باشید
یا علی
SlowCode
پنج شنبه 02 تیر 1390, 10:15 صبح
ممنون خیلی بهتر شد ولی اگه این خط سبز نباشه خیلی خوب میشه، و اگه رنگ پس زمینه عکس ها یعنی رنگ سفید نامرئی بشه عالی میشه.
SlowCode
پنج شنبه 02 تیر 1390, 10:16 صبح
یه سوال دیگه داشتم: چطور اندازه عکس سوم رو بزرگ کنیم طوری که کیفیتش خیلی پایین نیاد؟
SlowCode
سه شنبه 21 تیر 1390, 17:35 عصر
چرا جواب نمیدین؟؟؟؟؟؟:عصبانی:
BORHAN TEC
دوشنبه 27 تیر 1390, 11:04 صبح
یه سوال دیگه داشتم: چطور اندازه عکس سوم رو بزرگ کنیم طوری که کیفیتش خیلی پایین نیاد؟
الگوریتم کلی برای این کار اینه که با اضافه کردن پیکسلهایی می توان اندازه تصویر را بزرگتر کرد که رنگ این پیکسلهای اضافه شده نیز با میانگین گرفتن از رنگ پیکسلهای کناری حاصل می شود.
SlowCode
شنبه 01 مرداد 1390, 00:31 صبح
میشه یه نمونه سورس بذارید؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.