如果需要将带水印的JPG转换成05H的PDG:
1、 将PDG批量更名为JPG。如果下载的时候就已经是JPG,则此步省略。
2、用ComicEnhancer Pro打开带水印的JPG,色彩选“单色”,水印没了吧?不过这个时候文字多半也会变得很细,可以通过增加“Gamma校正”值,或用“曲线”来加黑。注意“Gamma校正”和“曲线”选一个足矣。调节好以后,转换成TIFF。
3、将TIFF文件更名为PDG,并且符合PDG文件命名规范,然后用高版本DjVuToy的“PDG压缩”功能转换成05H的PDG。注意转换的时候把“转换为快速版”选项去掉。
如果不需要转换成PDG,而是希望在去掉水印的同时尽可能保持清晰:
1、将PDG批量更名为JPG。如果下载的时候就已经是JPG,则此步省略。
2、用ComicEnhancer Pro打开带水印的JPG,将“高亮度”设置为125,看到那神奇的效果了吗?如果希望对文字的影响尽可能小,还可以尝试将“高亮值”设置为210。
3、下面就看你高兴了,可以直接存为JPG,也可以在色彩选“16级灰度”、“8级灰度”、“4级灰度”,然后转换成PNG。灰度级数越少,图像损失越多,文件越小,16级灰度基本上肉眼看不出文字部分有任何损失,4级灰度则很明显,可以结合“曲线”或“Gamma校正”等加以改善。
先用java.awt.Graphics2D.getFont()取得当前正在使用的字体f,java.awt.Graphics2D.getFontRenderContext()取得当前正在使用的渲染上下文frc然后再用Rectangle2D rect=f.getStringBounds(str,frc)就可以得到你渲染这些文字所占据的矩形,使用rect.getWidth(), rect,getHeight()就可以知道这个矩形的大小了。
反过来通过像素大小决定字符串的长度没有现成的方法。如果你的字体是等宽的可以先用上面的方法求出一个字符的大小然后自己算,不然就只能先试试一个字符,再试试两个字符……直到超过你要的长度就返回的办法了(看起来效率比较低,不过实际使用的时候不是很影响性能)
能啊,先将图片画在面板上,设置面板可见,透明,
然后将文本域添加在面板上设置文本域可见透明
见代码:
package bdzhidao
import java.awt.*
import javax.swing.*
public class BText extends JFrame{
private static ImageIcon imgIcon=new ImageIcon("image/BPanel.jpg")
private static Image img=imgIcon.getImage()
public BText(){
BPanel jp=new BPanel()
jp.setVisible(true)
jp.setOpaque(false)
JTextArea jta=new JTextArea(18,26)
jta.grabFocus()
jta.setLineWrap(true)//设置自动换行
jta.setSize(300,250)
jta.setOpaque(false)
jta.setVisible(true)
jp.add(jta)
add(jp)
}
static class BPanel extends JPanel{
protected void paintComponent(Graphics g){
super.paintComponent(g)
g.drawImage(img,0,0,this)
}
}
public static void main(String[] args){
JFrame frame=new BText()
frame.setTitle("BText")
frame.setSize(305,255)
frame.setLocation(0,0)
frame.setVisible(true)
frame.setResizable(false)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
}
希望对你有帮助!
你要换一下你的图片,然后图片不要太暗,否则不容易看见文字
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)