2016-04-10 23 views
0

Burada bazı örnekler görüyorum ve bilgisayarımda Java Advanced Imaging Image I/O Tools'u yükledim, çünkü JPEG2000 görüntülerinin işlenmesi zorunluluğudur. i kütüphaneleriGörüntüleri java ve eclipse hatası için .bmp'den jpeg2000'e dönüştürme

örneğin ithal edebilecek duyuyorum bu yükledikten sonra

import com.sun.media.imageio.plugins.*;

aktardıktan sonra, ben kurucular veya söz konusu kütüphanenin yöntemleri kullanmak mümkün ama bu hatayı alıyorum olmalıdır:

"Erişim kısıtlaması: türü 'J2KImageWriteParam' Gerekli kütüphaneye API (kısıtlama değil 'C: \ Program Dosyaları (x86) \ Java \ jre1.8.0_77 \ lib \ ext \ jai_imageio.jar') "

Hafif bir araştırmadan sonra, eclipse tercihlerini değiştirebileceğimi ve bu hatayı görmezden geldiğimi öğrendim .

Bu yoldan gittim: Tercihler -> Java -> Derleyici -> Hatalar/Uyarılar -> Onaylanmamış ve Yasaklanmış API. Sonra hataları uyarılara değiştirdim. Ama şimdi bu kütüphaneyi verimli kullanamıyorum, tutulma sebebi bu kütüphaneyle ilgili hiçbir şey önermiyor.

İlk sorum şu; Bunu yapmak için daha iyi bir yolu varsa? Ya da bu kütüphaneyi tutulmada verimli bir şekilde kullanmanın başka bir yolu var mı?

DÜZENLEME: 32 ve 64 bit sürümlerinin bir komplikasyonu olduğunu öğrendim. 32bit JDK'yi yükledikten ve jai_imageio.jar dosyasını referans aldıktan sonra iyi çalıştı.

İkincisi; Herkes, .bmp görüntüsünü jpeg2000 görüntüsüne dönüştürme hakkında bana basit bir örnek verebilir mi? Bu, bağlamı anlama konusunda bana çok yardımcı olur.

Eğer ithalatta bu olması gerekir

+0

Kullanabileceğimiz bir j2000 resminiz var mı? – gpasch

+0

Bitmap görüntüleri var – user52

cevap

0

teşekkür ederiz:

 import javax.imageio.*; 
    import javax.imageio.stream.*; 

    import com.sun.media.imageio.plugins.jpeg2000.*; 
    import com.sun.media.imageio.stream.*; 

ve bu kavanoz Bu benim için iyi çalışan bir örnektir

jai_imageio.jar;jai_codec.jar;jai_core.jar 

- ama eğer bilmiyorum üretilen j2k geçerli veya herhangi bir şeydir - bunu kontrol etmek için j2000 görüntüleyicinizi kullanın.

public void toJ2000(String inputFile, String outputFile) throws IOException { 
J2KImageWriteParam iwp = new J2KImageWriteParam(); 
FileInputStream fis = new FileInputStream(new File(inputFile)); 
BufferedImage image = ImageIO.read(fis); 
fis.close(); 

if (image == null) 
{ 
    System.out.println("If no registered ImageReader claims to be able to read the resulting stream"); 
} 

Iterator writers = ImageIO.getImageWritersByFormatName("JPEG2000"); 
String name = null; 
ImageWriter writer = null; 
while (name != "com.sun.media.imageioimpl.plugins.jpeg2000.J2KImageWriter") { 
    writer = (ImageWriter) writers.next(); 
    name = writer.getClass().getName(); 
    System.out.println(name); 
} 
File f = new File(outputFile); 
long s = System.currentTimeMillis(); 
ImageOutputStream ios = ImageIO.createImageOutputStream(f); 
writer.setOutput(ios); 
J2KImageWriteParam param = (J2KImageWriteParam) writer.getDefaultWriteParam(); 
IIOImage ioimage = new IIOImage(image, null, null); 

writer.write(null, ioimage, param); 
System.out.println(System.currentTimeMillis() - s); 
writer.dispose(); 
ios.flush(); 
ios.close(); 

image.flush(); 
} 

    public static void main(String[] args) { 
    TR t=new TR(); 
    try { 
     t.toJ2000("yel.png", "yel.j2k"); 
    } 
    catch (Exception ex) { ex.printStackTrace(); } 
    }