#png #adobe #libpng
Вопрос:
Я пытаюсь использовать вырез/маску Adobe API. В соответствии с документом я создал GET и PUT. Согласно документу, я также сгенерировал необходимый токен доступа. Для операции PUT я использую свой собственный Java-сервлет с методом PUT. Когда я пытаюсь запустить свой скрипт, операция adobe API GET выполняется успешно. Мой метод doPUT вызывается Adobe API. Я могу создать входной поток. Однако, когда я сохраняю поток вменения в виде файла png, он находится не в правильном формате
Кажется, при попытке сохранить входной поток я должен отфильтровать несколько байтов. Как определить байты, которые необходимо сохранить для выреза или маски. В информации ЗАГОЛОВКА нет ничего, что я мог бы использовать, Есть ли какие-либо байты, которые я могу использовать для проверки начала и конца содержимого файла PNG. Я попытался найти «IEND» 4 байта. Тем не менее, все равно это поврежденный файл
ServletInputStream fis=req.getInputStream(); byte b[]=new byte[4]; int data=fis.read(b); boolean fosstream = true; while(data !=-1) { if(fosstream) byteArrayOutputStream.write(b); String string = new String(b, StandardCharsets.UTF_8); if(string.equalsIgnoreCase("IEND")) { fosstream = false; data=fis.read(b); byteArrayOutputStream.write(b); } data=fis.read(b); } byte[] bytesRead = byteArrayOutputStream.toByteArray(); fos.write(bytesRead); fos.flush(); fis.close();