我正在尝试以Objective-C中较小的PNG编程创建一个大型PNG。较小的PNG是我用作水印的徽标。我想将较小的PNG放在大PNG的右下角。大型PNG应该是源视频的大小,并且具有透明背景。
我在C#中工作但是无法弄清楚如何在Objective-C中工作。我想我应该使用Image I / O库。
Bitmap bm;
int shortestSide;
if (videoWidth > videoHeight)
shortestSide = videoHeight;
else
shortestSide = videoWidth;
var logoDimension = (int)(shortestSide * 0.05);
Image logo;
if (logoDimension <= 16)
logo = Resources.watermark_16x16;
else if (logoDimension <= 24)
logo = Resources.watermark_24x24;
else if (logoDimension <= 36)
logo = Resources.watermark_36x36;
else if (logoDimension <= 48)
logo = Resources.watermark_48x48;
else if (logoDimension <= 54)
logo = Resources.watermark_54x54;
else
logo = Resources.watermark_64x64;
var logoPoint = new Point(videoWidth - logo.Width * 2, videoHeight - logo.Height * 2);
var image = new Bitmap(videoWidth, videoHeight, PixelFormat.Format32bppArgb);
using (var g = Graphics.FromImage(image))
{
g.DrawImageUnscaled(logo, logoPoint);
}
bm = image;
bm.Save(watermarkPath, ImageFormat.Png);
谢谢!
答案 0 :(得分:0)
这是我为合并图片而写的博客文章的链接。这是一个UIImage类别,它将传入的图像覆盖(或底层)到现有的UIImage。
http://saveme-dot-txt.blogspot.com/2011/06/merge-image-function.html
基本上关键是创建一个新的图像上下文,将第一个图像绘制到它上面,然后绘制第二个图像,然后返回新图像。
获得新图像后,我认为您可以执行以下操作:
NSData *dataForPNGFile = UIImagePNGRepresentation(yourImage);
获取PNG编码。