TransparentImgae Abhängig von winkel

Khaled

Grünschnabel
Code:
import org.eclipse.swt.SWT;

import org.eclipse.swt.graphics.Image;

import org.eclipse.swt.graphics.ImageData;

import org.eclipse.swt.graphics.ImageLoader;

import org.eclipse.swt.widgets.Display;



public class ImageManager {



    public static void main(String[] args) {

        final Display display = new Display();

        String imagePath = "C:\\Users\\k.algoursh\\Desktop\\as.jpg";

        Image image = new Image(display, setImageTransparent(display,imagePath,90,0,255));

        ImageLoader imageLoader = new ImageLoader();

        imageLoader.data = new ImageData[] { image.getImageData() };

        String saveImagePath = "C:\\Users\\k.algoursh\\Documents\\DB\\TranparentImage.png";

        imageLoader.save(saveImagePath, SWT.IMAGE_PNG);

    }



    public static ImageData setImageTransparent(Display display, String path,int angle,int opacityStart,int opacityEnde) {

        Image image = new Image(display, path);

        ImageData imageData = image.getImageData();

        for (int x = 0; x < imageData.width; x++) {

            for (int y = 0; y < imageData.height; y++) {

                manageImage(x, y, imageData,angle,opacityStart,opacityEnde);

            }

        }

        return imageData;

    }



    public static void manageImage(int x, int y, ImageData imageData, int angle, int opacityStart, int opacityEnde) {

        double hight = imageData.height;

        double width = imageData.width;

        double valueBrangeX = (opacityEnde - opacityStart) / width;

        double valueBrangeY = (opacityEnde - opacityStart) / hight;

        switch (angle) {

        case 0:

            imageData.setAlpha(x, y, (opacityEnde) - (int) (valueBrangeY * (y + 1)));

            break;

        case 90:

            imageData.setAlpha(x, y, (int) (opacityStart + valueBrangeX * (x + 1)));

            break;

        case 180:

            imageData.setAlpha(x, y, (int) (opacityStart + valueBrangeY * (y + 1)));

            break;

        case 270:

            imageData.setAlpha(x, y, (opacityEnde) - ((int) (valueBrangeX * (x + 1))));

            break;

        }

    }

}

Guten Tag,ich habe here ein Bild transparent gemacht(setalpha=0)für bestemten Winkel .



wenn Winkel=0 dann mache ich transparent von recht(set apha=0) Skalieren nach linq (setapha=255)

wenn Winkel=180 dann mache ich transparent von linq (set apha=0) Skalieren nachrecht(setapha=255)

wenn Winkel=0 dann mache ich transparent von oben(set apha=0) Skalieren nach unten(setapha=255)

wenn Winkel=180 dann mache ich transparent von unten(set apha=0) Skalieren Skalieren oben(setapha=255)

mit winkel wähle ich aus direction zum:(0-->180,45---->255)

die Frage ist wie ich Winkel als Parameter von 0 bis 360 geben kann? zm:15,30,45.....360
 
Zuletzt bearbeitet von einem Moderator:
Moin,

(a) nutze bitte die Code-Tags!!
(b) hast Du auch irgendeine Frage?? :oops::rolleyes:
(c) was soll die Umfrage ??

VG Klaus
 
Hallo,

ich war mal so frei und habe die Umfrage entfernt, da sie keinen Sinn ergeben hat. Ich habe auch mal die Code Tags um den normalen Text entfernt.
Ich bitte dich auch darum nicht einen Beitrag zu melden um Hilfe zu deiner Frage zu bekommen!

Ich verstehe im Moment deine Frage nicht wirklich, könntest du bitte erklären wo dein Problem genau liegt?
Es sieht so aus, als wäre deutsch nicht deine Muttersprache, falls du englisch besser kannst, kannst du dein Problem auch in englisch schildern.

Viele Grüße
Sascha
 
Soory ja stimmt bin nicht deustcher.die frage das,ich in
manageImage methode wo switch ist die werte zwischen(0) und 360 geben kann nicht nur 0.90,180,270
 
das habe gemacht ,aber ich muss gerade Abstand benutzen auch aber ich weis nicht wie soll ich schreiben.
 
Zurück