ImageMagick 笔记: 索引颜色(index color)、锁定图层,透明 png 转 gif (保持清晰度)...

今天在处理一张 png 透明背景的图片,大小: 16KB, 尺寸: 400 x 300,用到一段代码,也许对以后有用。

 

/** 带透明背景和阴影的png图片, 转换成 gif, [索引色] + [锁住背景], 保持图片效果最佳的转换,并且生成的gif文件较小: **/

//将透明背景png 转换成 透明背景gif
PixelWand *pw = NewPixelWand();
PixelSetColor(pw, "none"); //设置颜色
MagickSetImageBackgroundColor(mw_source, pw);
MagickSetImageAlphaChannel(mw_source,FlattenAlphaChannel);
MagickSetImageType(mw_source, TrueColorMatteType); //[索引色] + [背景加锁]

MagickWriteImage_gbk(mw_source, "c:\\1.gif");

 

 

将 400 x 300 的图片(mw) 放到 600 x 400 的透明画布(mw_canvas)上,并且要求生成的 png 文件较小:

.... //mw 缩放代码省略

//在 MagickCompositeImage() 前, 先设置 MagickSetImageType()

MagickSetImageType(mw, PaletteMatteType); 

 

//合成图片, 图片居中显示

MagickCompositeImage(mw_canvas, mw, OverCompositeOp, (width - newWidth) / 2, (height - newHeight) / 2); 

 

 // MagickCompositeImage() 后, 再设置 MagickSetImageType()

MagickSetImageType(mw_canvas, PaletteMatteType); 

 

MagickWriteImage_gbk(mw_canvas, "c:\\2.png"); //这样保存的png文件就会很小 (索引颜色 + 锁定图层)

 

 

名品推荐:爱可乐 卡缇 昕辰

 

转载于:https://www.cnblogs.com/personnel/p/7364187.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值