# TransparentImgae Abhängig von winkel



## Khaled (24. April 2019)

```
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 zum0-->180,45---->255)

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


----------



## vfl_freak (24. April 2019)

Moin,

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

VG Klaus


----------



## zerix (25. April 2019)

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


----------



## Khaled (25. April 2019)

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


----------



## Khaled (25. April 2019)

zum beispiel so:


----------



## Technipion (25. April 2019)

Ein Tipp :
x = cos(alpha)
y = sin(alpha)


----------



## Khaled (25. April 2019)

das habe gemacht ,aber ich muss gerade Abstand benutzen auch aber ich weis nicht wie soll ich schreiben.


----------

