Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вырезать часть картинки, из картинки 1500 x 1500 , вырезать центр 
V
    Опции темы
Invisible
Дата 13.8.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 26.5.2005

Репутация: нет
Всего: нет



Есть картинка BufferedImage 1500 на 1500, нужно вырезать какую - то часть этой картинки.
Например: вырезать центр размером 200 на 200. 

Я хочу организовать просмотр большой картинки по частям на сайте.  Ну потипу google maps, только без динамического обновления. Нажал юзер плюс ... изображение увеличилось (вырезаем (1500/100) * 90) и юзверу пришла картинка 1350 на 1350 ... примерно так ... 

Пытался таким образом
graphics.create
но не покатило .. просто ресайзит картинку. 
PM MAIL   Вверх
Shklyar
Дата 14.8.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 28.11.2007
Где: Kyiv

Репутация: 2
Всего: 3



(Java Advanced Imaging)
Цитата(http://www.cfnism.com/articles/)

Обрезаем изображение

Приведенный ниже метод crop() обрезает ширину и высоту изображения на определенное количество пикселов. Поэтому метод crop() у нас принимает только один параметр: количество обрезаемых пикселей.

Код

import java.io.*;
import java.util.*;
import java.awt.image.renderable.*;
import javax.media.jai.*;
import com.sun.media.jai.codec.*;

public class ImageUtils {
    private RenderedOp image = null;
    private RenderedOp result = null;
    private int height = 0;
    private int width = 0;

    public void crop(float edge) {
        ParameterBlock params = new ParameterBlock();
        params.addSource(image);
        
        params.add(edge);//кол-во обрезаемых пикселей по x 
        params.add(edge);// кол-во обрезаемых пикселей по y
        params.add((float) width - edge);//ширина после обрезания
        params.add((float) height - edge);//высота после обрезания
    
        result = JAI.create("crop", params);
    }
}


--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U
PM WWW   Вверх
Invisible
Дата 14.8.2008, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 26.5.2005

Репутация: нет
Всего: нет



Сомнительно что на том серваке куда потом сольют наш проект будет JAI. Как я понял, JAI надо отдельно ставить, если нет - поправьте. А нельзя ли сделать то что  я описал в первом посте не устанавливая ничего дополнительно, стандартными средствами java. Ну а если нельзя, то может какю - нибудь библиотеку использовать?

Это сообщение отредактировал(а) Invisible - 14.8.2008, 11:02
PM MAIL   Вверх
powerOn
Дата 14.8.2008, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Библиотеки JAI входит в состав JDK. Но их всегда можно скачать и таскать со своим приложением.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Invisible
Дата 14.8.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 26.5.2005

Репутация: нет
Всего: нет



powerOn, спасибо

Это сообщение отредактировал(а) Invisible - 14.8.2008, 12:00
PM MAIL   Вверх
Invisible
Дата 14.8.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 26.5.2005

Репутация: нет
Всего: нет



Ещё раз всем спасибо. Что то я немного неправильно тему подобрал ... но появился ещё вопрос. Организационный. Как вы думаете как лучше сделать такую штуку. Есть график, 500 на 500 и там куча значений стоят близко - близко , тоесть получается каша из точек. Есть кнопочка +. При нажатии на неё определённый участок картинки увеличивается (примерно так на Google maps) ... я хотел таким образом это реализовать : перестроить картинку с графиком под нужное мне разрешение и вырезать оттуда кусок. Но када разрешение дошло до 3000 мне выдали ошибку - недостаток памяти. Как мне это реализовать .. подскажите. Надеюсь понятно описал.
PM MAIL   Вверх
Metal_Heart
Дата 14.8.2008, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



Invisible, а ты работай не с картинкой, а с самими значениями графика, а картинку графика после каждого действия надо заново рисовать.
Т.е. память будет тратиться только на массив значений, что совсем не много по сравнению с полной картинкой


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.