2017-01-25 9 views
1

Я пытаюсь загрузить подпись, записанную из кодового имени, одной подписи на мой php server.the проблема в том, что загруженное изображение является черным изображением. Это мой код. Как я могу исправить этоcodename one signatueComponent Загрузка изображения

SignatureComponent sig = new SignatureComponent(); 
sig.addActionListener((evt)-> { 
try{ 
img = sig.getSignatureImage(); 
}catch(Exception ex){ 
ex.printStackTrace(); 
     } 
// Now we can do whatever we want with the image of this signature. 
}); 
Button sv = new Button("save"); 
sv.addActionListener(new ActionListener(){ 
     @Override 
     public void actionPerformed(ActionEvent evt) { 
      try { 


       Label it = new Label(); 
       it.setIcon(img); 
       orderHome.add(it); 

       ImageIO imgIO= ImageIO.getImageIO(); 
       ByteArrayOutputStream out = new ByteArrayOutputStream(); 
       imgIO.save(img, out,ImageIO.FORMAT_JPEG, 1); 
       byte[] ba = out.toByteArray(); 
       MultipartRequest request = new MultipartRequest(); 
       String url = Global.url1 + "upload_photo.php"; 

       request.setUrl(url); 


        request.addData("file",ba,"image/jpeg"); 
        request.addArgument("order_id", order_id); 
       request.addArgument("customer_id", customer_id); 

       NetworkManager.getInstance().addToQueue(request); 

и код PHP

[![image uploaded][1]][1] 
<?php 
@SESSION_START(); 
require_once("../includes/functions.php"); 
$target_path="../uploads/"; 
$customer_id=$_REQUEST['customer_id']; 
$order_id=$_REQUEST['order_id']; 
$uid = uniqid(); 
$file =$uid.".jpg"; 
$sucess=move_uploaded_file($_FILES["file"]["tmp_name"], $target_path.$file);     

image uploaded to server screenshot of the simulator

черный IMG является файл whic h загружается на сервер. Другой показывает скриншот запущенного приложения. i хотел бы загрузить подпись, как показано на скриншоте

+0

черный img - это файл, который загружается на сервер. Другой показывает скриншот запущенного приложения. I хотел бы загрузить подпись, как показано на скриншоте –

+0

Имеет ли 'orderHome' правильное изображение после этого процесса завершается, когда вы добавляете к нему ярлык? Я заметил, что после добавления не повторялся, поэтому он может не отображаться. В отладчике массив выглядит так, как будто он имеет правильное изображение? Если вы сохраните его в файле, он содержит достоверные данные? –

+0

изображение показывает, когда я добавляю его в метку в формате orderHome form.the, когда вы просматриваете его с помощью сетевого менеджера, показывает, что он содержит некоторое содержимое изображения (хотя я не уверен, что его правильное изображение). Проблема заключается в том, что изображение это сохранить в file.it показывает черное изображение, которое я добавил выше –

ответ

0

Подпись создает полупрозрачное изображение. JavaSE имеет некоторые проблемы с сохранением полупрозрачных изображений в формате JPEG и, следовательно, PNG работает хорошо. Другой альтернативой было бы создать непрозрачное изображение и сохранить, что, как например JPEG .:

Image myImage = Image.create(img.getWidth(), img.getHeight()); 
myImage.getGraphics().drawImage(img, 0, 0); 

Новый myImage будет непрозрачным с белым цветом фона.

+0

awesome.thank you –