PDA

View Full Version : حرفه ای: توليد استيل جديد براي HatchBrush



iransdp4
یک شنبه 24 دی 1391, 12:14 عصر
ميدانيم كه براي HatchBrush مي‌توانيم 52 نوع استايل در HatchStyle تعيين كنيم كه هم رنگ زمينه و هم رنگ قلم قابل تعيين و تغيير است . حال من مي‌خواهم ابزاري داشته باشم كه اولاً استايل جديد ايجاد كنم ، ثانياً همانند HatchStyle قابل بهره برداري باشد . ( استايلهايي شبيه به pattern هاي فتوشاپ يا اتوكد يا كارل ) . يا دستورالعمل استفاده فايلهايي از نوع pattern با پسوندPNG را چگونه هنگام لود آنها رنگ قلم و زمينه را تغيير دهم . ( در هنگام اجرا كاربر رنگ قلم و زمينه را تعيين ميكند )

the king
یک شنبه 24 دی 1391, 21:30 عصر
شما یک Bitmap جدید 32 بیتی بسازید، محتویاتش رو یا با رنگ (0, 0, 0, 0) پر کنید (رنگ کاملا شفاف)
و یا با رنگ دلخواه تان، و بعد هر خط و کادری که خواستید داخلش بکشید. در مرحله بعد می توانید
از روی این Bitmap یک TextureBrush جدید بسازید و مثل HatchBrush ازش استفاده کنید.

Dim bmp As New Bitmap(20, 20)
Using g As Graphics = Graphics.FromImage(bmp)
g.Clear(Color.FromArgb(0, 0, 0, 0))
g.DrawLine(Pens.Blue, 0, 0, 20, 20)
g.DrawLine(Pens.Blue, 20, 0, 0, 20)
g.DrawEllipse(Pens.Red, 0, 0, 20, 20)
End Using
Dim b As New TextureBrush(bmp)


برای قلم های رنگ آمیزی، یک تصویر نیمه شفاف PNG بسازید، رنگش مهم نیست، فقط نیمه شفاف باشد.
عوض کردن رنگ همچین تصویری مشکل نیست :

Dim bmp As Bitmap = yourImage
Dim newColor As Color = Color.Blue
For x As Integer = 0 To bmp.Width - 1
For y As Integer = 0 To bmp.Height - 1
Dim c As Color = bmp.GetPixel(x, y)
bmp.SetPixel(x, y, Color.FromArgb(c.A, newColor.R, newColor.G, newColor.B))
Next
Next
Dim newImage As Image = bmp

iransdp4
دوشنبه 25 دی 1391, 23:18 عصر
دوست عزير از راهنمايي شما متشكرم.
من bitmap را در texterbrush گذاشتم و در printDocument1_PrintPage قرار ميدم ولي شكل سايه دار ميشه .

اصل برنامه را ضميمه كردم با تشكر منصوري 09122253093

the king
سه شنبه 26 دی 1391, 00:36 صبح
دوست عزير از راهنمايي شما متشكرم.
من bitmap را در texterbrush گذاشتم و در printDocument1_PrintPage قرار ميدم ولي شكل سايه دار ميشه .

اصل برنامه را ضميمه كردم

اختلاف dpi چاپگر و صفحه نمایشگر رو در هنگام چاپ رو نظر بگیرید، از texture بزرگتر و با کیفیت تر استفاده کنید :
98419

iransdp4
سه شنبه 26 دی 1391, 10:42 صبح
دوست عزيز كل ماجرا اين است .
منيكفرمدارم كه بصورت جدولي يا اعداد و ... پر ميشه كه يكي از ستونهاش سيمبل است كه بصورت pattern هاي معمولي و بصورت سياه و سفيد است . كه در حالت رنگي فقط بايد رنگ قلم و زمينه در زمان اجرا قابل تعريف باشد . ابزارهايي براي ترسيم Pattern ها در هر ساز پيكسلي دارم ، 16 يا 40 پيسكلي . شما در اين زمينه چه راهنمايي داريد . iransdp8@yahoo.com

iransdp4
چهارشنبه 27 دی 1391, 19:06 عصر
دوست عزير از لطف شما متشكرم.
من نمي‌توانم تصوير بزرگتر ايجاد كنم چون در فرم اصلي عرض 20dpi بيشترجا ندارم . در مجموع حالت view مشكلي با ديدن pettern ها نيست ولي در چاپ مخصوصاً داخل PrintDocument مربوط به .net تصوير سايه دار ميشه . آيا بحث Vevtor ها يا روش ديگري وجود دارد . حتي بصورت پروژه .