我正在Netbeans中创建一个Swing GUI。此GUI的目的是打开(缓冲)图像(在JLabel中作为图标)并在其上应用仿射变换。现在有4个转换我正在做如下。
现在,每个变换需要两个滑块才能更改X和Y值,但旋转除外,这只需要一个。我这样做是因为它比为所有4种类型的变换做四个选项卡要好得多。另外我希望它是这样的,例如,如果旋转图像,可以通过从下拉列表中选择剪切来剪切相同的旋转图像。
问题是(是): 如何重新绘制标签图标并对同一重新绘制的图像应用不同的变换? 另外,如何在所选效果上更改JSlider depanding的最小值和最大值?
答案 0 :(得分:7)
你应该存储最初加载的BufferedImage,并创建它的副本 - 这样你就不会“破坏”它。
对于更改值,有方法setMaximum和setMinimum - 将监听器添加到列表,如Oracle tutorial中所述并修改值。
答案 1 :(得分:4)
作为@ Daniel答案的具体示例,文章Image processing with Java 2D描述了程序ImageDicer
。它构造了一个TreeMap<String, BufferedImageOp>
,每个JComboBox
可以从BufferedImage
中选择并应用于{{1}}。