fix(avatar): changement de ChatController::handleAvatarChange, image lue directement.

This commit is contained in:
Emi Boucly 2025-01-28 09:42:45 +01:00
parent 30986fa8e5
commit e9e76f08f2
3 changed files with 19 additions and 14 deletions

View file

@ -156,16 +156,20 @@ public class ChatController implements Initializable {
/** /**
* Ouvre une fenêtre de dialogue permettant de choisir son avatar * Ouvre une fenêtre de dialogue permettant de choisir son avatar
*/ */
FileChooser fileChooser = new FileChooser(); try {
Stage stage = (Stage) avatarImageView.getScene().getWindow(); FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Select Avatar"); Stage stage = (Stage) avatarImageView.getScene().getWindow();
fileChooser.getExtensionFilters().addAll( fileChooser.setTitle("Select Avatar");
new FileChooser.ExtensionFilter("Image Files", "*.png", "*.jpg") fileChooser.getExtensionFilters().addAll(
); new FileChooser.ExtensionFilter("Image Files", "*.png", "*.jpg")
File selectedFile = fileChooser.showOpenDialog(stage); );
if (selectedFile != null) { File selectedFile = fileChooser.showOpenDialog(stage);
avatarImageView.setImage(new Image(selectedFile.toURI().toString())); if (selectedFile != null) {
contact.setAvatarFromFile(selectedFile); avatarImageView.setImage(new Image(selectedFile.toURI().toString()));
contact.setAvatar(ImageIO.read(selectedFile));
}
} catch (IOException e) {
LOGGER.warning("Impossible de lire l'image!");
} }
client.sendEvent(new rtgre.modeles.Event("CONT", this.contact.toJsonObject())); client.sendEvent(new rtgre.modeles.Event("CONT", this.contact.toJsonObject()));
} }
@ -256,9 +260,9 @@ public class ChatController implements Initializable {
contactsListView.setCellFactory(contactListView -> new ContactListViewCell()); contactsListView.setCellFactory(contactListView -> new ContactListViewCell());
contactsListView.setItems(contactObservableList); contactsListView.setItems(contactObservableList);
File avatars = new File(getClass().getResource("avatars.png").toURI()); File avatars = new File(getClass().getResource("avatars.png").toURI());
Contact fifi = new Contact("fifi", true, avatars); //Contact fifi = new Contact("fifi", true, avatars);
contactObservableList.add(fifi); //contactObservableList.add(fifi);
contactMap.add(fifi); //contactMap.add(fifi);
} catch (Exception e) { } catch (Exception e) {
LOGGER.severe(e.getMessage()); LOGGER.severe(e.getMessage());
} }

View file

@ -157,6 +157,7 @@ public class Contact {
ByteArrayOutputStream bos = new ByteArrayOutputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
try { try {
ImageIO.write(img, "png", bos); ImageIO.write(img, "png", bos);
System.out.println(Base64.getEncoder().encodeToString(bos.toByteArray()));
return Base64.getEncoder().encodeToString(bos.toByteArray()); return Base64.getEncoder().encodeToString(bos.toByteArray());
} catch (IOException e) { } catch (IOException e) {
LOGGER.severe("Impossible de convertir l'image en base64"); LOGGER.severe("Impossible de convertir l'image en base64");

View file

@ -39,7 +39,7 @@ public class ChatServer {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
ChatServer server = new ChatServer(2024); ChatServer server = new ChatServer(2024);
daisyConnect(); //daisyConnect();
server.acceptClients(); server.acceptClients();
} }