Jag har en BufferedImage som visar (oväntat nog) en bild. Denna bild ska man kunna zooma in i. Just nu har jag så att när man trycker på bilden så zoomar man in en viss mängd.
Jag vill att man ska kunna se vilket utsnitt man kommer zooma in på, alltså visa en rektangel som har rätt propotioner som följer pekaren runt över bilden. Frågan är alltså hur jag gör detta? Jag antar att jag får använda mouseMoved och mouseEntered, men på vad ska jag rita rektangeln? Att rita ovanpå bilden är förstås en möjlighet, men det verkar bara dumt. :) Några tips? Har ingen ide alls om vilken klass jag ska titta på ens...
Ram runt pekaren?
7 svar · 344 visningar · startad av pettsson
Inga förslag? Min lärare vet inte heller hur man gör, men jag vill ju ha den här funktionen :(
Var skulle du rita om inte ovanpå bilden?
Alltså att skriva över den data som finns i bilden och temporärt spara den någon annanstans verkar varken vara effektivt eller bra ;) Det var så jag menade.
Rita en rektangel som en muspekarbild. Du kan ju göra det "on the fly" så kan du få olika storlek på den t.ex. Sen ser du till att när muspekaren är över bilden så visas rektangelpekaren. Annars den vanliga pilen.
Hmm, hur ändrar man pekaren? Får väl köra det på mouseEntered, men vilken klass hanterar pekarens utseende?
Allstå... Jag tror att ni är lite fel ute. Det är inte pekaren som ska ändras egentlinge. Vad man gör är att när man är i zoom-läge, t.ex genom att man har tryck in en zoom-knapp så registrerar man vilken punkt i bilden som pekaren är på just då. Denna lagras.
Vid det tillfället aktivera man även en onMouseMove-lyssnare som kollar var pekaren är när den flyttas. Baserat på dessa två ritar man en rektangel, men inte på den valda bilden, utan på ett nytt layer ovanför.
När man sedan släpper så tar onMouseRelease-metoden båda de punkter som man har fått och zoomar in bilden under.
Håller på med lite kod som gör det här men är inte riktigt färdig.