java怎么把图片处理城java 生成圆形图片

把图片转换成圆形的Android代码_Java_ThinkSAAS
把图片转换成圆形的Android代码
把图片转换成圆形的Android代码
内容来源: 网络
* 转换图片成圆形
* @param bitmap 传入Bitmap对象
* @return
public Bitmap toRoundBitmap(Bitmap bitmap) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float roundPx;
float left, top, right, bottom, dst_left, dst_top, dst_right, dst_
if (width &= height) {
roundPx = width / 2;
top = 0;
bottom =
left = 0;
right =
height =
dst_left = 0;
dst_top = 0;
dst_right =
dst_bottom =
} else {
roundPx = height / 2;
float clip = (width - height) / 2;
left =
right = width -
top = 0;
bottom =
width =
dst_left = 0;
dst_top = 0;
dst_right =
dst_bottom =
Bitmap output = Bitmap.createBitmap(width,
height, Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect src = new Rect((int)left, (int)top, (int)right, (int)bottom);
final Rect dst = new Rect((int)dst_left, (int)dst_top, (int)dst_right, (int)dst_bottom);
final RectF rectF = new RectF(dst);
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, src, dst, paint);
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信2013年10月 Java大版内专家分月排行榜第二2013年3月 Java大版内专家分月排行榜第二2013年2月 Java大版内专家分月排行榜第二
2013年7月 Java大版内专家分月排行榜第三2013年5月 Java大版内专家分月排行榜第三2013年4月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。java对图片图形的处理 - ITeye问答
最近要用java对图片进行处理,用到ImageIO,对图片的读写,及在图片上画图形(Graphics类),
出现了一个问题,就是用ImageIO对图片读的时候,会让图片失去他本身的色彩类型,BufferedImage类中的所给的类型,好像还没有办法让图片保存原有的色彩。被处理后图片的大小发生明显的变化。图像质量有变化。
求高手帮个忙,java中有什么方法处理图片,又能让图片有其原来的色彩类型,
急求。多谢,多谢了!!!
下面是我的代码,可以比较前后两图片的大小差别,再放开看看
public class App {
public static void main(String[] args) {
editImage();
public static void editImage() {
BufferedImage bufferImage = ImageIO.read(new File("D:\\1.jpg"));
// Image image = ImageIO.read(new File("D:\\1.jpg"));
// int wide = image.getWidth(new Applet());
// int height = image.getHeight(new Applet());
// BufferedImage bufferImage = new BufferedImage(wide, height, BufferedImage.TYPE_INT_BGR);
Graphics2D g = (Graphics2D) bufferImage.getGraphics();
Stroke stroke = new BasicStroke(1.6f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 3.5f, new float[] { 8, 4 }, 0f);
g.setColor(Color.black);
g.setStroke(stroke);
g.drawLine(60, 60, 350, 60);
// g.drawImage(image, 0, 0, null, null);
// 画字符。文字
g.setFont(new Font("Arial", Font.BOLD + Font.ITALIC, 15));
g.drawString("editImage sucess good", 50, 50);
g.drawRect(60, 60, 50, 80);
g.drawOval(100, 100, 50, 80);
g.drawOval(120, 180, 90, 90);
g.setColor(Color.blue);
g.setStroke(new BasicStroke());
g.drawRoundRect(200, 200, 60, 80, 15, 15);
// 画实心圆
g.fillArc(200, 200, 90, 60, 0, 360);
// 画实用矩形
g.fillRect(300, 300, 40, 60);
//画一个点
Point2D p = new Point2D.Double(400, 400);
//g.draw(p);
g.dispose();
bufferImage.flush();
String name = "D:\\2.jpg";
File of = new File(name);
System.out.println("save file :" + name);
ImageIO.write(bufferImage, "jpg", of);
System.out.println("save finish!!");
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
问题补充redwave 写道
用TYPE_INT_RGB试试 我之前也在做图片的处理,发现BufferedImage的确会有颜色上的误差,现在还没有找到解决办法。 下面这张图片用BufferedImage就会有问题 File file =new File("D:/NewImage/tom/test/errorImage/labariceporridgefestival11-hp.jpg"); BufferedImage src=ImageIO.read(file); ImageIO.write(src, "jpg", new File("d:/NewImage/new_tom/1314.jpg"));
里面的格式我差不多都试过了,如果图片本身色彩不是很丰富的话,放大看还是差不多的,多多少少还是有问题 问题补充有没有其它的方法来做类似的处理,效果会更好些了
问题补充:&div class="quote_title"&redwave 写道&/div&&div class="quote_div"&用TYPE_INT_RGB试试
&br /&我之前也在做图片的处理,发现BufferedImage的确会有颜色上的误差,现在还没有找到解决办法。
&br /&
&br /&下面这张图片用BufferedImage就会有问题
&br /&
&br /&File file =new File("D:/NewImage/tom/test/errorImage/labariceporridgefestival11-hp.jpg");
&br /&BufferedImage src=ImageIO.read(file);
&br /&ImageIO.write(src, "jpg", new File("d:/NewImage/new_tom/1314.jpg"));&/div&
&br /&谢谢,还是有点问题,
输出PNG格式
用TYPE_INT_RGB试试
我之前也在做图片的处理,发现BufferedImage的确会有颜色上的误差,现在还没有找到解决办法。
下面这张图片用BufferedImage就会有问题
File file =new File("D:/NewImage/tom/test/errorImage/labariceporridgefestival11-hp.jpg");
BufferedImage src=ImageIO.read(file);
ImageIO.write(src, "jpg", new File("d:/NewImage/new_tom/1314.jpg"));
已解决问题
未解决问题java怎么输出一个圆,或者三角形等平面图行_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:563,946贴子:
java怎么输出一个圆,或者三角形等平面图行收藏
给个具体思路,谢谢啦,爱你们,解决我粉了
上海张学友、王菲演唱会一站式购票!票品安全且真票!立即订购!
好人在哪儿
system.out.println(&○&);
forfor   春嗅百花秋赏月,夏沐凉风冬听雪
都没有个实在的
public class Hua implements MouseListener,MouseMotionListener{
int x1,x2,y1,y2;
public void hua(){
j=new JFrame(&HUA&);
grap=new Grap();
grap.addMouseListener(this);
grap.addMouseMotionListener(this);
j.getContentPane().add(grap,&Center&);
j.setSize(300, 500);
j.setVisible(true);
public static void main(String[] args) {
Hua hua=new Hua();
hua.hua();
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
grap.repaint();
x2=e.getX()-x1;
y2=e.getY()-y1;
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
x1=e.getX();
y1=e.getY();
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
class Grap extends JPanel{
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawOval(x1, y1, x2, y2);
把控制台当坐标系,一度=派/180,在用圆半径和三角形正玄余玄算出三角垂直边和直角边也就是圆上某一点的xy坐标
长乘以宽乘以高百度搜薛老师教育自频道
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 java 图片裁剪成圆形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信