我是Qt的新人。我正在研究图像的旋转。在我的情况下,旋转工作正常,但旋转后出现黑色填充背景。我想删除或隐藏那个黑色背景。
我正在研究MAC。所以我正在使用“Imageevent”applescript。我的脚本是这样的:告诉应用程序“图像事件”。
launch
set this_image to open this_file
rotate this_image to angle 270
save this_image with icon
close this_image
end tell
除了这个脚本,我还尝试了这个Qt代码来旋转图像:
void MyWidget::rotateLabel()
{
QPixmap pixmap(*my_label->pixmap());
QMatrix rm;
rm.rotate(90);
pixmap = pixmap.transformed(rm);
my_label->setPixmap(pixmap);
}
答案 0 :(得分:2)
您也可以使用指定颜色填充图像...
set myFile to "/Users/JD/Desktop/test.png"
do shell script "sips -r 270 " & quoted form of myFile & " --padColor FFFFFF -i"
EDIT 您可以将下面的脚本保存为应用程序并在其上删除文件...
on open of theFiles
repeat with aFile in theFiles
set filePath to quoted form of (aFile's POSIX path)
do shell script "sips -r 270 " & filePath & " --padColor FFFFFF -i"
end repeat
end open
答案 1 :(得分:1)
sips似乎在至少PNG文件中保持透明背景:
sips -r 270 /tmp/a.png -o /tmp/b.png
你也可以使用ImageMagick:
convert -rotate 270 /tmp/a.png /tmp/b.png