Jag har ritat en 3D-knapp i svartvit. Nu ska jag lägga in ett antal knappar på mit formulär i olika färger. Jag udrar hur jag gör för att färglägga den svartvita knappen? Hur har du ritat den ? Annars borde det inte vara så svårt att via program fixa till det på en svartvit bild, om du bestämmer att fullt vit (255, 255, 255) motsvarar en färg (x, y, z), och svart (0, 0, 0) helt enkelt är svart (0, 0, 0) så är det väldigt simpelt: Bilden jag skapat har jag ritat i ett grafikprogram. Jag tänker mig att jag använder bilden som alpha-kanal i mitt program som jag sedan använder när jag lägger ut de olika knapparna i valfri färg på mitt formulärFärglägga en svartvit bild
Sv: Färglägga en svartvit bild
I något externt program ?
I så fall låter det väl enklast att kopiera den och redigera till de färger du vill använda och spara de alla i projektet.
Har du "ritat"/Skapat den från verktygslådan är det ju egenskaper/backgroundcolor som ändrar färg.Sv: Färglägga en svartvit bild
För varje pixel så gör du helt enkelt en väldigt simpel beräkning: För varje kanal (röd, grön, blå) på den svartvita bilden tar du fram ett värde mellan 0 och 1. Det multiplicerar du sedan med värdet på samma kanal i den färg du valt på knappen. Det värde du får på den kanalen i den pixeln använder du sedan till den nya bilden.
Pseudo:
i = svartvit bild
o = färgbild
c = grundfärgen
for x=0 to width
for y=0 to height
o[x,y,röd] = i[x,y,röd] * c[röd] / 255
o[x,y,grön] = i[x,y,grön] * c[grön] / 255
o[x,y,blå] = i[x,y,blå] * c[blå] / 255
end for
end for
För att få någon prestanda så skulle jag nog undvika att använda mig av get/setpixel, satsa istället på ett unsafe-block så du kan få ut det som råa färger iställetSv:Färglägga en svartvit bild