Технически нет прямого способа сделать это, однако вы можете сортировать это с помощью jquery или javascript.
Howeve, вы также можете сделать что-то подобное.
a.active h1 {color:blue;}
a.active p {color: green;}
jQuery
$("a.active").parents('li').css("property", "value");
Если вы хотите достичь этого с помощью jQuery, здесь приведена ссылка для родительского селектора jQuery
В JavaFX 2.2 ImageView
всегда будет выполняться сглаживание независимо от плавного намека, который вы предоставляете ImageView
.
(На основе тестирования с использованием Java 7u15 и Windows 7 с видеокартой ATI HD4600).
Возможно, это ошибка, которая ImageView
всегда будет сглаживать Image
, но в документации не указано точно, что сглаживание делает или не делает, поэтому трудно сказать, каково его реальное намерение. Вы можете отправить ссылку на этот вопрос в список рассылки openjfx-dev или зарегистрировать проблему в трее JavaFX issue tracker , чтобы получить более экспертное мнение от разработчика.
Я попробовал несколько разных методов масштабирования изображения:
ImageView
с помощью fitWidth / fitHeight . ImageView
. Image
с помощью PixelReader и создания нового изображения с помощью PixelWriter . Я обнаружил, что методы 1 & amp; 4 привело к резкому пиксели изображения, как вы хотите, и 2 & amp; 3 приводило к размытому изображению с псевдонимом.
[/g15]
Пример кода для генерации указанного выше выхода.
Обновление с идеями по внедрению собственного фильтра изображений
Эффект JavaFX не совпадает с фильтром, используемым для подпрограмм загрузки изображений, хотя Эффект для фильтрации изображение может быть создано. В JavaFX 2.2 публично документированный API для поддержки создания пользовательских эффектов, поэтому создание настраиваемого эффекта может оказаться затруднительным.
Собственный код для поддержки изображений был недавно открыт в качестве части проект openjfx , поэтому вы можете посмотреть на это, чтобы увидеть, как в настоящее время выполняется фильтрация.
Вы также можете запросить запрос функции в отношении проекта среды исполнения JavaFX , чтобы «позволить нам создавать собственные 2D-фильтры».
Когда вы добавляете следующий конструктор в ответ Мартина Сойки, вы можете просто передать javafx Image в конструктор. Кроме того, несмотря на предупреждения об устаревших функциях, его ответ все еще работает нормально (на JDK 1.8_121).
public PixelatedImageView (javafx.scene.image.Image image) {
super(image);
}
Я знаю, что это немного старше, но мне недавно понадобился такой ImageView, и следующий небольшой взлом делает именно то, что я хочу на моей (Windows) машине. Нет гарантий, что он работает повсюду.
import com.sun.javafx.sg.prism.NGImageView;
import com.sun.javafx.sg.prism.NGNode;
import com.sun.prism.Graphics;
import com.sun.prism.Texture;
import com.sun.prism.impl.BaseResourceFactory;
import com.sun.prism.Image;
import javafx.scene.image.ImageView;
@SuppressWarnings("restriction")
public class PixelatedImageView extends ImageView {
@Override protected NGNode impl_createPeer() {
return new NGImageView() {
private Image image;
@Override public void setImage(Object img) {
super.setImage(img);
image = (Image) img;
}
@Override protected void renderContent(Graphics g) {
BaseResourceFactory factory = (BaseResourceFactory) g.getResourceFactory();
Texture tex = factory.getCachedTexture(image, Texture.WrapMode.CLAMP_TO_EDGE);
tex.setLinearFiltering(false);
tex.unlock();
super.renderContent(g);
}
};
}
}
Фокус в том, что текстура снова используется, поэтому линейная фильтрация остается «липкой». Почему NGImageView
не мог просто передать флаг «гладкий», чтобы линейная фильтрация текстуры была вне меня.
ImageView
и ImageViewHelper
. Кто-нибудь понял, как работать с новыми ограничениями в Java 9?
– ddukki
1 November 2017 в 00:47