"ladny" resize obrazka w aplikacji webowej
Daniel - 23-10-2005 19:12
"ladny" resize obrazka w aplikacji webowej
Witam
szukam jakiejs biblioteki, ktora bedzie masowo resizowala uploadowane zdjecia w aplikacji webowej. w tej chwili uzywam jimi, ale efekty sa bardzo slabe. wiem, ze jest tez imagemagick i jego javowa biblioteka, ale nie ma mozliwosci uruchomienia tego na tomcacie. jak juz mowilem, chodzi o "ladny" resize, (wstepny resampling z dobrymi algorytmami). moze ktos ma w tym doswiadczenie, bede bardzo wdzieczny za porade.
pozdrawiam
Daniel
wango - 23-10-2005 19:12
Nie wiem czy to najlepsze wyjście ale działa, wykorzystuje tylko to co w javie jest, mam zrobiony serwlet ktory czeka na komendę i resizuje wszystko. Wszystkie obrazki po zmianie rozmiaru wrzuca w podkatalog, jakość jest niezła, zależy od SCALE_DEFAULT = 1; SCALE_FAST = 2; SCALE_SMOOTH = 4; SCALE_REPLICATE = 8; SCALE_AREA_AVERAGING = 16 info w javadoc:
public static void convertAll(File dir) { count=0; String[] children = dir.list(); for (int i = 0; i < children.length; i++) {
File nowy = new File(dir, children[i]); if (nowy.isFile() & nowy.getName().contains(".jpg")){ Scale("directory", 100,100,nowy);} } }
private static void Scale(String subdir, int width, int height, File f) {
try { BufferedImage i = JPEGCodec.createJPEGDecoder(new FileInputStream(f.getPath())).decodeAsBufferedImag e(); int dx = 0, dy = 0, h = 0, w = 0; if ((float) width / i.getWidth() < (float) height / i.getHeight()) { w = width; h = (int) ((float) (i.getHeight()) / i.getWidth() * width); dy = (height - h) / 2; } else { h = height; w = (int) ((float) (i.getWidth()) / i.getHeight() * height); dx = (width - w) / 2; } BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics();
g.setColor(Color.WHITE); g.fillRect(0, 0, width, height); g.drawImage(i.getScaledInstance(w, h, Image.SCALE_AREA_AVERAGING), dx, dy, null); JPEGImageEncoder encoder = JPEGCodec .createJPEGEncoder(new FileOutputStream(subdir + File.separator + f.getName())); encoder.encode(image); g.dispose();
} catch (ImageFormatException e) {
e.printStackTrace(); } catch (IOException e) {
e.printStackTrace(); } }
WAŻNE: w inicie servletu musi być coś takiego jeśli nie masz okienek:
public void init() throws ServletException { System.setProperty("java.awt.headless", "true"); super.init(); }
jn
Użytkownik "Daniel" <ddaanniieel2l@o2.pl> napisał w wiadomości news:di05do$9mu$1@inews.gazeta.pl... > Witam > > szukam jakiejs biblioteki, ktora bedzie masowo resizowala uploadowane > zdjecia w aplikacji webowej. > w tej chwili uzywam jimi, ale efekty sa bardzo slabe. > wiem, ze jest tez imagemagick i jego javowa biblioteka, ale nie ma > mozliwosci uruchomienia tego na tomcacie. > jak juz mowilem, chodzi o "ladny" resize, (wstepny resampling z dobrymi > algorytmami). > moze ktos ma w tym doswiadczenie, bede bardzo wdzieczny za porade. > > pozdrawiam > > Daniel
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Gdzie =?iso-8859-2?Q?postawi=E6_aplikacje_MySQL=3F_w_domu=3F_w?==?i so-8859-2?Q?_firmie_hostingowej=3F?=
[Oracle] Co do tworzenia aplikacji dla bazy Oracle
=?iso-8859-1?q?24img.com_-_NOWY_-_Darmowy_Hosting_Zdjec_i_Obrazk=F3w_/_Albumy_na_Zdjecia?=
gdzie =?ISO-8859-2?Q?umieszcza=E6_obrazki=2C_zdj=EAcia=3F?=
[Praca - Warszawa] Programista aplikacji internetowych, PHP, AJAX, CSS
=?ISO-8859-2?Q?Aplikacja_BD_-_jak_to_zrobi=E6,_pyt._teoretyczne?=
=?iso-8859-2?Q?Materia=B3y_dydaktyczne,_e-learning,_obrazki_i_animacje?=
=?iso-8859-2?Q?Jak_wyr=F3wna=E6_tonalnie_dwa_obrazki?=
witam . Mam pytanie. Jak mogę pisać na wstawionych wczesniej obrazkach
Oracle 10g EX - jak udostepnic stworzona aplikacje na zewnatrz?
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|