PHP'de .PNG formatındaki önceden hazırlanmış maskeleme imajlarını istediğin bir resmin üzerine yazabiliyorsun. ASPX demişsin, sanırım .NET ile çalışıyorsun? Onu da belirtirsen daha sağlam yanıtlar alırsın herhalde.
Maskelemenin genel mantığı şu:
Önce ekleyeceğin her öğe için ayrı bir maske dosyası ve/veya matrisi hazırlayacaksın (biz dosyayı ele alalım ki aslında dosya da zaten renk matrisi içerir). Mesela, bıyık ekleyeceksen ya beyaz üzerine siyah ya da siyah üzerine beyaz olarak bıyığı istediğin şekilde çizeceksin (burada da siyah üzerine beyaz yaptığını ele alalım). Kullanıcının yüklediği imajı bu maske imajıyla aynı boyuta getireceksin. Sonra maske imajını ve kullanıcının yüklediği imajı binary olarak açıp (burada resim dosya türlerinin header ve info bölümlerinin bilgisini okumayı bilmen gerekiyor) maske imajındaki matrisi alacak ve döngüye sokacaksın. Bu döngü sonunda 3. bir imaj elde etmiş olacaksın, o da şu şekilde olacak: Sen o döngüde maske imajının matrisine bakarken siyah noktalara karşılık gelen X ve Y koordinatlarına göre kullanıcının imajındaki değeri yeni imaja yazacaksın. Eğer beyaz noktaya denk gelirsen de kullanıcının imajındaki değer yerine maskedeki değeri yazacaksın (veya istediğin başka bir işlem yapacaksın, buradaki olay kullanıcının imajındaki değeri almıyor olmak). Böylece maskeyi kullanıcının imajının üzerine bir nevi yapıştırmış olacaksın.
Örnek:
0 0 1
0 1 0
0 0 1
Bu bizim maskemiz olsun. Burada 1'leri ele alacağız.
3 7 5
6 4 9
1 0 8
Bu da kullanıcının imajı olsun.
Bu maskeyi, imaj üzerine uygularsak şunu elde etmiş oluruz:
3 7 X
6 X 9
1 0 X
Burada X yerine ister 1 yazarsın, istersen de başka bir değer. Sonuçta maskeden biz sadece o koordinatlara işlem yapmamız gerektiğini gördük, işlem ise sana kalmış
Umarım yeterince açıklayıcı olabilmişimdir. Basit bir mantıktır aslında ama anlatması uzun böyle. E tabi, bu anlattıklarımı uygulayacak hazır bir kütüphane veya bileşen var mıdır onu bilmiyorum. Yoksa sana kalacak uygulamak
PS: Bir de benim örnekler siyah/beyaz resimler için geçerli. Yani tek boyutlu matris olayı. Renkli resimlerde biraz daha farklı oluyor olay. Ama maskeleme mantığı gene aynı