Recommended Posts

I created an image signature in that grabs the title of the latest post in your rss feed.

NOTE: They work well, but aren't close to production quality so don't expect that yet

PHP & GD2 Version: rss.txt (rename as .php and open it in a text editor to configure it)

ASP.NET Version: RSSImageSig.zip (setup in iis, configure in web.config and run Default.aspx)

Original Topic

Edited by benjeeeboy
Link to comment
https://www.neowin.net/forum/topic/348463-rss-image-signature/
Share on other sites

I plan on eventually doing animated gifs.

The setback for this is that there doesn't seem to be a built in way in PHP/GD or ASP.NET to do this. It may be easier in PHP w/ ImageMagick, but i haven't looked into that. Even if it isn't built in, it should be possible to hack it together by generating multiple frames, and then putting those together into an animated gif.

Another alternative, is to generate SWF through Ming (I believe that there is something similar in asp.net).

mynimal, I'm not exactly sure why yours doesn't work. My configuration looks like this: (a.jpg is just my copy of your image)

$feedurl = "http://blog.mynimal.net/?feed=rss2";
$imageurl = "a.png";
$imageinputtype = 'png';
$imageoutputtype = 'png';
$problemwithfeedtext = 'Problem loading feed';
$problemwithimagetext = 'Problem loading image';
$font = 'arial.ttf';
$fontcolor = array(255,255,255); //array (r,g,b)
$fontsize = 12;
$fontantialiased = TRUE;
$x = 65;
$y = 16;
$angle = 0;
$maxwidth = NULL;
$maxheight = NULL;
$toofarstr = '...';

If this doesn't work for you, then could you tell me your version of PHP & GD?

Just done one for the Neowin forum RSS, will you repost the old script, as I find it easier to use, as there aren't so many options!

forum.php

Bare in mind I did this one in Paint :p

I've just seen an error on it now, if the feed contains an invalid character - like to "&" a minute ago, it showed up as &amp :p

Edited by TimRogers

Pretty cool but it goes of the edge, which i corrected in the new one.

Yah, the script configuration is pretty complicated so i'll try to group the options together and show which ones are more important.

I like the idea of the designer -- i will probably try to make one.

Yah, the & error is a problem in alot of applications that use rss feeds (open a feed in firefox with a & in it and it will show it like that too), but i can fix that relatively easily. The problem is that i think that there are alot of characters that show up like that and it may cause the script to slow down if i try to elimate all of them.

The other thing i was thinking about is whether there is a good way to make it easy to link the image to the post that it is showing the title for. I can think of a bunch of ways, but none of them are very good.

mynimal, I'm not exactly sure why yours doesn't work.  My configuration looks like this: (a.jpg is just my copy of your image)

$feedurl = "http://blog.mynimal.net/?feed=rss2";
$imageurl = "a.png";
$imageinputtype = 'png';
$imageoutputtype = 'png';
$problemwithfeedtext = 'Problem loading feed';
$problemwithimagetext = 'Problem loading image';
$font = 'arial.ttf';
$fontcolor = array(255,255,255); //array (r,g,b)
$fontsize = 12;
$fontantialiased = TRUE;
$x = 65;
$y = 16;
$angle = 0;
$maxwidth = NULL;
$maxheight = NULL;
$toofarstr = '...';

If this doesn't work for you, then could you tell me your version of PHP & GD?

586264454[/snapback]

I'm beginning to think it's my host that's the problem.

I mean, look at this:

http://www.mynimal.net/rss/info.php

PHP version is 5.0.4 and 4.?.?, GD is er..guessing GD2? Not sure.

I'm beginning to think it's my host that's the problem.

I mean, look at this:

http://www.mynimal.net/rss/info.php

PHP version is 5.0.4 and 4.?.?, GD is er..guessing GD2? Not sure.

586264610[/snapback]

I test it with php 5.04 and the latest version of GD2. I don't really see what could be going wrong because that sounds like a php problem, but since your usure about the gd version, i think checking that out is the best route to go.

Make a new .php file with <? phpinfo(); ?> inside to find out.

I also did some slight updates to the code:

-better organization for options

-option to fix the & and " that sometimes show up

I'm done with updating this today, and plan to do the designer thing sometime.

I test it with php 5.04 and the latest version of GD2.  I don't really see what could be going wrong because that sounds like a php problem, but since your usure about the gd version, i think checking that out is the best route to go.

Make a new .php file with <? phpinfo(); ?> inside to find out.

586264748[/snapback]

That's what this is, and what leads me to conclude that my host is having problems. :\

EDIT: Nevermind. I messefd it up, now the phpinfo is working..

GD Version bundled (2.0.28 compatible)

It is likely that it is your host, as the way php acts is controlled by a configuration file, not usually exposed to the host's clients. Despite this, sometimes there are workarounds or ways to temporary change values in the configuration.

Its probably possible to figure out a fix.

I know you said it was on line 48, but i don't have a copy of that version anymore. Could you send me line 48 so i can see what it is?

It is likely that it is your host, as the way php acts is controlled by a configuration file, not usually exposed to the host's clients.  Despite this, sometimes there are workarounds or ways to temporary change values in the configuration. 

Its probably possible to figure out a fix.

I know you said it was on line 48, but i don't have a copy of that version anymore.  Could you send me line 48 so i can see what it is?

586264941[/snapback]

Line 48 is "throw new Exception();", and deals with the error reporting.

Would you make the version with the cut off so it works with my current Neowin RSS one, as my blog titles are never too long, yet the Neowin ones are? Here is the current code, could you add the cutoff to it, as I don't understand all the options on the new version :p

&lt;?
// ******************************************************
//          RSS Feed Script by Benjeeboy on Neowin 
//              Version Customized by TimRogers
//         Shows you the latest forum posts on Neowin
// ******************************************************
// editable:
// $feedurl - the url of your feed
// $imageurl - your background image (if not png change imagecreatefrompng to imagecreatefromgif or other types)
// $fontcolor - the font color
// $fontsize - the font size
// $font - the ttf font file path ex: 'arial.ttf'
// $x - the x position of text
// $y - the y position of text
// $angle - text angle

$feedurl = "https://www.neowin.net/backend.php?page=forum";

$fp = fopen($feedurl,"r");
$contents = ".";
while (!feof($fp))
$contents .= fread($fp,8192);
fclose($fp);

preg_match("#&lt;rss.*?&gt;.*?&lt;channel.*?&lt;item&gt;\s*&lt;title&gt;\s*(.*?)\s*&lt;\/title&gt;#s",$contents,$matchdata);
$title = $matchdata[1];

$imageurl = "http://www.tim-rogers.co.uk/neowinforum/template.PNG";

$img = imagecreatefrompng($imageurl);

$font = 'seguibd.ttf';
$fontcolor = imagecolorallocate($img, 255, 255, 255);
$fontsize = 8;
$x = 65;
$y = 16;
$angle = 0;

imagettftext($img,$fontsize,$angle,$x,$y,$fontcolor,$font,$title);

header('Content-type: image/png');
imagepng($img);
?&gt;

Mynimal, does your feed validate? Also, did you try to take out the "throw new Exception();" line that was causing the problem?

TimRogers, what confuses you about it the new version? - so i can improve it. The options are nearly identical which is why im unsure of why you don't like them. Heres a modified old version with the cut off as per request:

&lt;?
// ******************************************************
//          RSS Feed Script by Benjeeboy on Neowin
//              Version Customized by TimRogers
//         Shows you the latest forum posts on Neowin
// ******************************************************
// editable:
// $feedurl - the url of your feed
// $imageurl - your background image (if not png change imagecreatefrompng to imagecreatefromgif or other types)
// $fontcolor - the font color
// $fontsize - the font size
// $font - the ttf font file path ex: 'arial.ttf'
// $x - the x position of text
// $y - the y position of text
// $angle - text angle
// $maxwidth - the number of pixels of text to display

$feedurl = "https://www.neowin.net/backend.php?page=forum";

$fp = fopen($feedurl,"r");
$contents = ".";
while (!feof($fp))
$contents .= fread($fp,8192);
fclose($fp);

preg_match("#&lt;rss.*?&gt;.*?&lt;channel.*?&lt;item&gt;\s*&lt;title&gt;\s*(.*?)\s*&lt;\/title&gt;#s",$contents,$matchdata);
$title = $matchdata[1];

$imageurl = "http://www.tim-rogers.co.uk/neowinforum/template.PNG";

$img = imagecreatefrompng($imageurl);

$font = 'seguibd.ttf';
$fontcolor = imagecolorallocate($img, 255, 255, 255);
$fontsize = 8;
$x = 65;
$y = 16;
$angle = 0;
$maxwidth=170;

$end='';
$toofarstr='...';
$textbounds = imagettfbbox($fontsize,$angle,$font,$title);
if ($maxwidth != NULL)  // if its not -1, make it fit width-wise
{
	while ( $textbounds[2] - $textbounds[0] &gt; $maxwidth ) //it is wider than maxwidth
	{
  
  $title = substr($title,0,strlen($title)-1); // remove last character
  $end = $toofarstr;
  $textbounds = imagettfbbox($fontsize,$angle,$font,$title . $end);
	}
}

imagettftext($img,$fontsize,$angle,$x,$y,$fontcolor,$font,$title . $end);

header('Content-type: image/png');
imagepng($img);
?&gt;

Anyways, i plan on rewriting alot of it, because as it is i can't do much with it.

Edited by benjeeeboy
Mynimal, does your feed validate? Also, did you try to take out the "throw new Exception();" line that was causing the problem?

I took out that line (new version) and all hell broke loose. :p I also tried removing all instances of the error reporting.

Also, I tried TomRoger's neowin script on my host. It works with the Neowin RSS but not mine.

P.S. It's valid.

//Edit: I just tried another wordpress RSS feed from another blog and I got the same error. It seems to be some sort of Wordpress bug.

Edited by mynimal

My new version is going to be a complete rewrite, and i will try to make it compatible with all feeds and error free.

(Please realise that this is the first time i've written anything in php for ~6 years - when i was 12 so i'm not exactly familiar with it... back then i think it was version 3, now its 5 ;) hopefully i'll catch on soon)

Edited by benjeeeboy

My new feed loader works with your wordpress page.

To make sure that it agrees with your host, try this test script:

&lt;?
	$domdoc = DOMDocument::load('http://blog.mynimal.net/?feed=rss2');
	$xpath = new DOMXPath($domdoc);
	$titles = $xpath-&gt;query('/*/channel/item/title');
	for ($i=0;$i&lt;$titles-&gt;length;$i++)
	{
  echo $titles-&gt;item($i)-&gt;nodeValue;
  echo '&lt;br&gt;';
	}
?&gt;

It should spit out the titles of your posts

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • It had gone weeks ago. Although thinking about it I'm on the beta.
    • They thought value of their goods would forever only drop like it used to and didn't account for sudden increase in price because of all the Ai hype. Tough luck Samsung, don't try to weasel this one out. Also American customer protection laws are a**. In Europe, you need to be compensated for a functioning product of same or better characteristics (not same price point as when it was originally bought!) if it can't be repaired and when you receive a replacement product your warranty starts from scratch because you received a different item than you previously had and old warranty thus cannot apply to it anymore. If your actual item was successfully repaired, warranty gets extended for the period the item was in service. If item is repaired to a significant extent, warranty also starts over from scratch because major part of it was replaced. Americans need to fight to get this kind of consumer protections because they are constantly getting screwed over.
    • Microsoft releases new Windows 11 Media Creation Tool with the latest updates by Taras Buria Patch Tuesday updates arrive every month, bringing users new features and security updates. To make sure customers have access to the most recent images, Microsoft also releases updates to the Media Creation Tool app, its official utility for Windows 11 installation. Today, the company pushed new ISOs to Media Creation Tool, allowing you to create images with the June 2026 Patch Tuesday updates. With the latest update, the Media Creation Tool now downloads KB5094126. It is Windows 11 version 25H2, build 26200.8655, which is also available via Windows Update. Note that the app itself remains on the previous version, which you can check in Properties > Details. The only change is that it now downloads a more recent Windows 11 build, so the only way to check is to download an ISO. The June 2026 Patch Tuesday update is a special release for Windows 11, as it brings a new performance profile to make the operating system more responsive and snappier when rendering various user interface surfaces, including the Start menu, quick settings, and more. It does so by spiking processor speeds for a brief moment, resulting in higher loads for a second or two. The so-called “Low latency profile” is rolling out gradually, but you can force-enable it with the ViVeTool app. Other changes include webcam improvements, Task Manager updates, shared audio support, and more. You can download the Media Creation Tool app from the official Microsoft website using this link. Besides MCT, Microsoft lets you download Windows 11 ISO as a file directly from the official Windows 11 website. However, you will need a third-party app to write it to your USB drive. Check out this guide if you want to know how to do that.
    • Louis Rossmann suing Samsung over "990 Pro SSD warranty scam" by Sayan Sen Back in 2023, if you recall, Neowin reviewer Robbie Khan had a dispute with Samsung over his 990 Pro SSD, which was rapidly losing its health. After significant back and forth, the tech giant had finally released firmware to "stop" the issue. Interestingly, its previous flagship at the time, the 980 Pro was also facing problems leading to two consecutive sets of firmware fixes. Three years later, it looks like a similar conflict has now broken out between tech repair entrepreneur YouTuber Louis Rossmann and Samsung, as it has escalated into a threatened lawsuit after the company allegedly refused to appropriately replace a failing 990 Pro SSD that remained under warranty. According to Rossmann, a 4TB Samsung 990 Pro NVMe SSD purchased for approximately $330 less than two years ago, began experiencing major hiccups and issues, even though he claims it had been operated under ideal cooling conditions. It was installed in a RAID 1 array and cooled by a heatsink and dual high-speed fans. However the drive reportedly started dropping out of the array, exhibiting controller-level failures that eventually became not useable in any meaningful way. Rossmann said Samsung’s support process was marked by delays and confusion from the very start. After initially contacting the wrong regional support channel, he was redirected to Samsung’s memory support division where he submitted detailed diagnostics, logs, and proof of purchase. Rossmann runs a repair company and owns an ACE Lab PC-3000 machine, which is a professional-grade data recovery equipment. As such, he had been confident in his diagnostics. Samsung even seemingly acknowledged that later. Regardless, Rossmann claims that his initial support ticket was automatically closed before a full 24-hour response window had elapsed, forcing him to reopen the case and resubmit documentation. The controversy however intensified further from here after Samsung accepted the drive for warranty evaluation but later returned it with a repair report stating that the drive had passed its testing and that the SSD had been verified as functional. Rossmann strongly disputed those claims citing that his own independent testing on PC-3000 showed write speeds reducing to as low as 40–60 MB/s before the drive failed entirely. Samsung subsequently informed him that the SSD had been reset and reflashed, passing internal stress tests. However, the company also stated that replacement units were unavailable due to an industry-wide memory shortage and suggested that a refund process could be initiated if further testing confirmed the fault. Thus, to settle, the company offered a refund of $330, the amount that was initially paid by him to make the purchase. Here, Rossmann pointed out the seeming hypocrisy of the tech giant as in how no Samsung drive was apparently allocated for warranty replacements, but they were abundantly available for retail sales especially when using business accounts. As you can see, Rossmann is indeed right, there are Samsung 990 Pro 4TB SSDs on Amazon currently for $950 (shipped and sold by first-party Amazon US itself), and they are also available on Samsung's own store too, albeit for an even higher price of $1100. Thus Rossmann argues that Samsung’s inability or unwillingness to provide a replacement while the same model remains available for purchase at significantly higher market prices reflects a failure to honor its warranty obligations. He has issued a formal 60-day notice and says he intends to file suit in Texas small claims court, asserting that companies should face greater costs for denying legitimate warranty claims than for fulfilling them. You can check out the full video titled "Samsung's 990 Pro SSD warranty policy is a scam; I'm taking them to court," at the link below. Source and image: Louis Rossmann (YouTube) As an Amazon Associate we earn from qualifying purchases
  • Recent Achievements

    • Week One Done
      davidbazooked earned a badge
      Week One Done
    • One Month Later
      Jamswaz earned a badge
      One Month Later
    • Week One Done
      Jamswaz earned a badge
      Week One Done
    • Rookie
      Marzoid went up a rank
      Rookie
    • Community Regular
      coch went up a rank
      Community Regular
  • Popular Contributors

    1. 1
      +primortal
      509
    2. 2
      PsYcHoKiLLa
      184
    3. 3
      +Edouard
      158
    4. 4
      Steven P.
      83
    5. 5
      ATLien_0
      75
  • Tell a friend

    Love Neowin? Tell a friend!